jQuery 查找与条件匹配的元素

jQuery find elements that match criteria

本文关键字:元素 条件 查找 jQuery      更新时间:2023-09-26

有一个棘手的问题,我想向<td>的所有<tr>添加一个class,这些父其中有一个<span>或一个<div>元素。所以我有一个带有标记的表格,如下所示:

<table>
    <tr>
        <td>
        </td>
        <td>
        </td>
        <td>
            <div>
            </div>
        </td>
        <td>
        </td>
    </tr>
    <tr>
        <td>
            <span></span>
        </td>
        <td>
        </td>
        <td>
            <div>
            </div>
        </td>
        <td>
        </td>
    </tr>
</table>

所以我希望具有<span><div><td>有一个jQuery 添加到它们中......

我似乎无法弄清楚如何遍历所有<td>以检查它们的后代,然后将类添加到那些内部有<span><div>的类中......这可能吗?

感谢您对它的任何光照!快把我逼疯了!

您可以使用 .has() 检查tr是否有 divspan作为后代:

$('table tr').has('div,span').addClass('someClass');

检查以下代码片段:

$('table tr').has('div,span').addClass('someClass');
.someClass {
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>td 1</td>
    <td>td 2</td>
    <td>
      <div>div</div>
    </td>
    <td>td 3</td>
  </tr>
  <tr>
    <td>td 1</td>
    <td>td 2</td>
    <td>td 3</td>
    <td>td 4</td>
  </tr>
  <tr>
    <td><span>span</span>
    </td>
    <td>td 1</td>
    <td>
      <div>div</div>
    </td>
    <td>td 2</td>
  </tr>
  <tr>
    <td>td 1</td>
    <td>td 2</td>
    <td>td 3</td>
    <td>td 4</td>
  </tr>
</table>