使用JQuery在表中选择嵌套行

时间:2017-04-09 09:35:13

标签: jquery html

给出以下html表(它只是一个例子):

<table>
    <tbody>
        <tr>
            <th>First</th>
            <th>Second</th>
        </tr>
        <tr>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
        </tr>
        <tr>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
        </tr>
        <tr>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
        </tr>
        <tr>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
        </tr>
    </tbody>
</table>

我想选择包含&#34; X&#34;的 (所以td标签也是)使用JQuery。我无法找到合适的选择器来执行此操作。

我已尝试过:table tr tr:last-child但这不起作用。这一小段代码应该意味着&#34;给我最后一个tr子节点,它有一个父表格,父表格为#34;。

更新:

X只是一个例子。在我的真实项目中,我想要选择的行包含一组输入元素。我想选择那些行来隐藏它们而不是它们的内容(输入元素)。然后我必须能够选择其他行(包含名称的行)。

2 个答案:

答案 0 :(得分:1)

尝试.filter()

(Haven未测试以下代码)

$("tr")
  .filter(function( index ) {
    return $(this).text().indexOf('X') != -1;
  })

答案 1 :(得分:0)

你能解释一下你的桌子是如何运作的吗?

另一行内的嵌套表行应该在行内的新表中吗? 你转而试图在一行中引用两个不同的表?

这是对的吗?

如果您按照我的示例中所示的方式构建html表,则以下代码段应该按照您的要求执行。

&#13;
&#13;
$('table').on('click','td',function(e){

 // e.stopPropagation();
  var t = $(this);
  
  t.find('tr:last-child').toggleClass('highlight');
});
&#13;
tr:hover { background-color: lightblue; }
.highlight { background-color: yellow; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tbody>
        <tr>
            <th>First</th>
            <th>Second</th>
        </tr>
        <tr>
            <td colspan="2">
              <table>
              <tbody>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
            </tbody>
            </table>
            </td>
        </tr>
         <tr>
            <td colspan="2">
              <table>
              <tbody>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
            </tbody>
            </table>
            </td>
        </tr>
                <tr>
            <td colspan="2">
              <table>
              <tbody>
            <tr>
                <td>Alfreds Futterkiste</td>
                <td>Maria Anders</td>
            </tr>
            <tr>
                <td>X</td>
                <td>X</td>
            </tr>
            </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
&#13;
&#13;
&#13;