2012-03-29 23 views
0

我一直在這裏一段時間,想知道如果有人有任何想法實現我的目標的最佳方式!某個表列號的jQuery類數

例子:

<table> 
<tbody> 
<tr> 
<td>Hello</td> 
<td>Hello (I want to check this column)</td> 
</tr> 
<tr> 
<td>Hello 2</td> 
<td class="active">Hello 2 (this column)</td> 
</tr> 
</tbody> 
</table> 

的jQuery到目前爲止,我已經得到了(我從點擊的元素遍歷):

var length = $(self).closest("tbody").find("tr").find("td.active").length; 

顯然,這得到TD的所有活動類,當我只想要第二列。我試過了:

var length = $(self).closest("tbody").find("tr").find("td:eq(1).active").length; 

這是行不通的。

任何想法?

+0

eq是0基於所以也許嘗試eq(0) – Rodolfo 2012-03-29 16:33:22

+0

eq(0)將意味着第一​​雖然,所以eq(1)將是第二,這正是我想要實現的 – 2012-03-29 16:35:56

+0

但你說* ...當我只想要第一列*時。此外,什麼是「自我」? – 2012-03-29 16:43:07

回答

3

如果我理解正確的話,你想要得到的表格單元格中第二列(而不是在問題所表示的第一),它具有類active他們。如果是這樣的話,你可以使用以下命令:

var length = $(self).closest('tbody').find('tr').find('td:eq(1)').filter('.active').length; 

http://jsfiddle.net/mikemccaughan/g6mnn/

+0

啊哈,過濾器好像是我在找的東西,很有魅力 - 謝謝! – 2012-03-29 16:49:43

+0

你的答案不起作用,不符合你的工作小提琴。 – 2012-03-29 17:24:54

1

我覺得你的選擇是不是做你指望它什麼。我本來期望你期待什麼,但檢查出從eq()文檔(重點煤礦)這一段:

注意,由於JavaScript數組使用基於0的索引,這些 選擇反映這一事實。這就是爲什麼$('。myclass:eq(1)')選擇 文檔中的第二個元素,類myclass,而不是 第一個。相反,:nth-​​child(n)使用基於1的索引來將 符合CSS規範。

所以你會想用td:eq(1)沒有類選擇,然後篩選結果,並然後盡數:

var length = $(self).closest("tbody").find("td:eq(1)").filter(".active").length; 

希望幫助!

+0

正確的答案,但你有第二個不幸(謝謝你! – 2012-03-29 17:03:27

+0

@thedixon - 沒有後顧之憂,有時候會發生,乾杯! – 2012-03-30 17:41:59

相關問題