2015-12-12 208 views
3

我有这样的HTML:如何仅选择所有匹配元素的两个元素?

<table> 
    <tr> 
     <td>...</td> 
     <td class="clsname">...</td> 
     <td class="clsname">...</td> 
     <td>...</td> 
     <td class="clsname">...</td> 
     <td>...</td> 
     <td>...</td> 
    </tr> 

    <tr> 
     <td>...</td> 
     <td class="clsname">...</td> 
     <td class="clsname">...</td> 
     <td class="clsname">...</td> 
     <td>...</td> 
     <td class="clsname">...</td> 
    </tr> 
</table> 

现在我想选择只有两个td.clsname每个tr的。我想选择这些:

<table> 
    <tr> 
     <td>...</td> 
     <td class="clsname">...</td>  // <---- this 
     <td class="clsname">...</td>  // <---- this 
     <td>...</td> 
     <td class="clsname">...</td> 
     <td>...</td> 
     <td>...</td> 
    </tr> 

    <tr> 
     <td>...</td> 
     <td>...</td> 
     <td class="clsname">...</td> // <---- this 
     <td class="clsname">...</td> // <---- this 
     <td class="clsname">...</td> 
     <td>...</td> 
     <td class="clsname">...</td> 
    </tr> 
</table> 

我该怎么做?

$('table tr').find('td.clsname').text(); 

^这发现所有这些,我怎么能限制它?

回答

4

尝试这种情况:

$('table tr').find('td.clsname:first-child:nth-child(2)').text();

+0

** **两个第一要素... – Shafizadeh

+0

似乎是正确的。我会试试... – Shafizadeh

+0

谢谢....! +1 – Shafizadeh

2

$('table tr').find('td.clsname')返回一个数组。如果你想选择特定的元素,你可以使用slice()。例如,。

+0

谢谢....! +1。 – Shafizadeh

0

试试看看这个代码。

$('table tr').each(function(){ 
    alert($(this).find('td.clsname:nth-child(1)').text()); 
    alert($(this).find('td.clsname:nth-child(2)').text()); 
}); 

希望这会帮助你。

1

这会给你个人TR

var tr = $("tr"); 
    for(var i = 0; i < tr.length; i++) 
    { 
     console.log($(tr[i]).find(".clsname:lt(2)")); 
    } 

的元素,这将TR内让所有的前两个孩子与类名的阵列

console.log($("table tr").find(".clsname:lt(2)")); 
相关问题