jQuery搜索如果找到元素子

时间:2011-09-26 12:26:27

标签: javascript jquery search 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>

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

我该怎么检查呢?

5 个答案:

答案 0 :(得分:5)

if($(".second:has(.tg-hey)").length) {
    // do something
}

Demo.

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

$(".second:has(.tg-hey)").hide();

非常安全。

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

if($(".second").is(":has(.tg-hey)")) {
    // do something
}

Demo.

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

答案 1 :(得分:4)

只需创建选择器并检查结果的长度(如果为0则为false,否则为真):

if ($('ul.second div.tg-hey').length) {
    alert("It exists");
}

http://jsfiddle.net/SgnvH/

答案 2 :(得分:2)

$(".second").has(".tg-hey").length > 0

答案 3 :(得分:1)

喜欢这个吗?

if ($('ul.second div.tg-hey').length > 0)
  // exists
else
  // doesn't

答案 4 :(得分:0)

$('.className').length

如果$('.className').length == 0,则该元素不存在。

修改:

$('.second').length将告诉您有多少元素具有“第二”类。

$('.second .tg-hey').length会告诉你有多少元素在“第二”类中有“tg-hey”类。

这假设您正在使用jQuery!