如何只选择所有匹配元素的两个元素?

时间:2015-12-12 11:36:08

标签: javascript jquery html

我有这样的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 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分:2)

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

例如,$('table tr').find('td.clsname').slice(index1, index2).text()

答案 2 :(得分: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)"));

答案 3 :(得分:0)

试试这段代码。

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

希望这会对你有所帮助。