2012-03-15 2 views
1

У меня есть таблица, где у каждой строки есть флажок.Как получить выбранные строки в таблице?

Этот код работает для другой таблицы:

jQuery('#my_table_id tr').has(':checkbox:checked').closest('tr').each(function() { 
     request_arr[i] = jQuery(this).attr('id'); 
     i++; 
    }); 

Теперь в этом случае, у меня есть объект таблицы:

var tbl = $('#my_table') // In my code, this is done dynamically 

    // This does not work 
    jQuery(tbl + 'tr').has(':checkbox:checked').closest('tr').each(function() { 
     request_arr[i] = jQuery(this).attr('id'); 
     i++; 
    }); 

Как я могу получить проверенные строки с помощью объекта таблицы, как tbl? Я пробовал различные развертки, но я не могу заставить их работать.

Update

Это, как я создал мой HTML:

<table id="t1"></table> 

<div class="bulk_action"> 
    <div title="Remove requests" class="trash_iconset_grey_16px removeRequest"></div> 
    <div title="some other button" class="abc"></div> 
</div> 

<table id="t2"></table> 

<div class="bulk_action"> 
    <div title="Remove requests" class="trash_iconset_grey_16px removeRequest"></div> 
    <div title="some other button" class="abc"></div> 
</div> 

Нажатие на кнопку "" ниже таблице 1, будет установлен tbl = <table id="t1">.

@elcanrs решение будет также получать проверенные строки в таблице NR 2. Я хочу только проверенные строки для таблицы NR 1.

ответ

3

jQuery(tbl + 'tr') - это то же самое, что и $($('#my_table') + 'tr'), что не имеет никакого смысла. Сделайте это вместо того, чтобы:

tbl.find('tr') 
+0

правый - 'jQuery ('tr', tbl)' будет работать - используя tbl в качестве контекста для выбора. – StilgarBF

+0

@elcanrs Я пробовал это раньше, и это работает ... но проблема в том, что у меня есть другая таблица ниже моей первой таблицы. Если я также проверю некоторые флажки в этой таблице, это будет включено в мой 'find - each'. Мне нужно найти проверенные строки только в 'tbl'. – Steven

+0

@Steven: Тогда что-то не так с вашей структурой. 'find' найдет только потомки выбранных элементов. –

0

Не было бы jQuery(tbl + ' tr') учитывать пространство между столом и идентификатором tr?

0
jQuery(tbl + ' tr') 

неверен, потому что вы пытаетесь объединить объект со строкой. , вы должны использовать метод find для поиска отмеченного флажка, а затем перейти к первому тегу tr. попробуйте использовать:

tbl.find(':checkbox:checked').closest('tr').each(...); 
Смежные вопросы