2011-04-25 78 views
0

我必須失去它,但我不能將類添加到類似於下面的代碼的第二個表(id爲'table2')。在我當前的代碼中,這些表格沒有用ID標記,我只是做了它來顯示我需要添加一個類的表。jQuery addClass到第二個表

<div id="content_area"> 
    <table id="table1"> 
    <tr> 
     <td>data</td> 
     <td> 
     <table><tr><td>data</td></tr></table> 
     <table><tr><td>data</td></tr></table> 
     </td> 
     <td> 
     <table><tr><td>data</td></tr></table> 
     </td> 
    </tr> 
    </table> 
    <table id="table2"><tr><td>data</td></tr></table> 
</div> 

$('#content_area').find('table:eq(1)').addClass('stuff'); 

回答

1

這是對我工作:

$('#content_area').children('table:eq(1)').addClass('stuff'); 

這需要最少的變化對現有的代碼。

+0

這是正確的,我仔細檢查了我的代碼,並且我試圖抓取的表格實際上是在FORM內部的,但這基本上做到了這一點 – ToddN 2011-04-25 18:18:54

1

嘗試:

$('#content_area table').eq(4).addClass('stuff'); 

在你的榜樣,與id="table2"表實際上是content_area內的5臺。從每個<table>標籤開始計數。

在表1中的表動態#的情況下,你應該使用:

$('#content_area').children('table:eq(1)').addClass('stuff'); 

這將着眼於content_area的直接兒童和那些孩子們的第二個表。 [每Kevin Buchan的答案]

參見:http://jsfiddle.net/tAZht/2/

+0

不幸的是我原來的代碼是動態的,我不能靜態表計數,因此數量可能與到底有多少表將第一個表(「表1」)內部發生了變化。 – ToddN 2011-04-25 18:13:22

+0

更新了我的回答,@Kevin Buchan的答案可能會幫助你在動態#表格的情況下 – brendan 2011-04-25 18:18:50

1

什麼

$('#content_area > table:nth-child(2)').addClass('stuff'); 
+0

這將添加類到每個第二個孩子是兩個表將獲得類的東西。 http://jsfiddle.net/naveed_ahmad/aLmc2/4/ – 2011-04-25 18:13:20

+0

Fix'd http://jsfiddle.net/aLmc2/6/ – mak 2011-04-25 18:16:54

+1

現在完美並且比迭代遍歷每個孩子並找到正確的索引要優化得多 – 2011-04-25 18:18:26