jQuery搜索如果找到元素子

its*_*sme 2 javascript search jquery controls find

嗨,我的HTML看起来像这样:

<ul class="first">
  <li>
    <div class="tg-hey">hey</div>
    <div class="tg-hi">hi</div>
    <div class="tg-hoi">hoi</div>
  </li>
</ul>
<ul class="second">
  <li>
    <div class="tg-hey">hey</div>
    <div class="tg-hi">hi</div>
    <div class="tg-hoi">hoi</div>
  </li>
</ul>
<ul class="third">
  <li>
    <div class="tg-hey">hey</div>
    <div class="tg-hi">hi</div>
    <div class="tg-hoi">hoi</div>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我需要的是找到(例如<ul class="second">)是否<div class="tg-hey">存在.

我怎么检查呢?

kar*_*m79 5

if($(".second:has(.tg-hey)").length) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

演示.

如果你需要对匹配的元素做一些事情,你真的不需要先测试,因为如果没有匹配就不会发生任何事情,所以:

$(".second:has(.tg-hey)").hide();
Run Code Online (Sandbox Code Playgroud)

非常安全.

另一种方法是使用.is:has:

if($(".second").is(":has(.tg-hey)")) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

演示.

但我不会这样做,因为它看起来像一个相当简单的任务太多的jQuery.