2013-08-22 57 views
0

我使用jQuery 1.8.2中的以下代碼獲取表中給定行的表元素。在知道表元素的jQuery中遍歷表中的所有行

var tbl = $("input[id$='chkSelectAll']").closest('table'); 

現在,我想用相應的jQuery腳本替換下面的JavaScript代碼。 以下代碼的jQuery會是什麼?

這將是很好,如果我可以從jQuery上面的tbl變量中獲取表格行作爲數組,那樣可以解決我的問題。

for (var i = 1;i < tbl.rows.length - 1;i++) { 
     var chk = tbl.rows[i].cells[0].firstChild; //we have a checkbox in first cell of every row 
     chk.checked = chkAll.checked; 
    } 

回答

1
var rows = $('tr', tbl); 
for (var i = 1;i < rows.size() - 1; i++) { 
    rows.eq(i).find('td:first').find('input:checkbox').prop('checked', true); 
    } 

您可以使用 「chkAll.prop( '檢查')」,而不是 「真實」 假設你有chkAll爲複選框

+0

邁克爾的jQuery對象 - 謝謝。什麼是eq(i)?可能是我的元素。 – Sunil

+0

Michael - 你的代碼有一個問題。在FF和IE 10中,我得到了這個表達式的未定義:$(「input [id $ ='chkSelectAll']」)。closest('table')。find('tr')。eq(1).find 'td:first')。find('checkbox')。attr('id') – Sunil

+0

嘗試把它分解成許多行,以便你可以知道哪一個不工作。或者,如果你可以用jsFiddle發佈一個新問題會更好 –