2013-06-24 63 views
4

我已經創建的錶行jQuery的:如何使用jQuery獲得第n個孩子在新的元素

$("#table_id").append(tableRow); 

接下來的事情:

var tableRow = $("<tr>").append($("<td>").text("one")) 
         .append($("<td>").text("two")) 
         .append($("<td>").text("three")); 

現在我在文件中把它添加到表我想要做的是在上面創建的tableRow的一些單元格上設置點擊事件。我想爲此使用第n個子選擇器。但是從文檔似乎有可能與像一些選擇使用它:

$("ul li:nth-child(2)") 

但現在我需要使用:nth-child()一個變量tablerow的。 這怎麼可能?

回答

13

我想爲此目的使用第n個子選擇器。

在這種情況下,你可以使用.find()

cell = tableRow.find(':nth-child(2)'); 
cell.on('click', function() { 
    ... 
}); 
+0

儘管'find'適用於**特定的**結構,OP提到(因爲'td'沒有元素),更一般的解決方案(仍然滿足OP的奇怪「我想用':n -child'的要求)將會是'children',所以你沒有得到樹中所有的**:nth-​​child(2)'元素:https://jsfiddle.net/80tnutc8/ –

0

.eq()嘗試像

$("#table_id tr td:eq(1)") 

或者你也可以直接從tablerow的調用像

$(tableRow + "tr td:eq(1)") 
2

您可以使用.find()隨着nth-child

tableRow.find('td:nth-child(2)') 

或在這種情況下,你可以使用.children(),這可能是更好的

tableRow.children('nth-child(2)') 
0

你創建的元素動態的,所以你必須使用下面的結構,如果它的靜態創建(即:在HTML中創建您可以使用用於UL什麼提)

$('#table_id').find(":nth-child(2n)") 

DEMO