使用jQuery检查div是否有文本和某个类的跨度

时间:2012-07-30 10:13:37

标签: jquery css-selectors

<div class="testDivClass">
    Some text!
    <div>
        <span class="testSpanClass">
        </span>
    </div>
</div>

我想返回true或者一个非null的对象(基本上是一个测试的布尔值) - 它告诉我这个div(类testDivClass)确实包含'Some text!'并且确实有一个类“testSpanClass”的范围(请注意,它不是'root'div的直接子节点。)

非常感谢任何建议。

到目前为止,我有:

$("div.testDivClass:contains('Some text!')");

这很好,但我不知道从哪里开始。使用.children(".testSpanClass")不会给我什么。

编辑:我已经尝试过.has() - 它也没有返回任何内容。

2 个答案:

答案 0 :(得分:5)

$('.testDivClass').is(function() {
    return $(this).text().indexOf("Some text!") > -1 && $(this).find("span.testSpanClass").length
});

演示:http://jsfiddle.net/Y2KVp/

使用选择器:

$('.testDivClass').is(':contains("Some text!"):has(span.testSpanClass)');

选择器演示:http://jsfiddle.net/Y2KVp/2/

答案 1 :(得分:1)

我创建了一个fiddle来演示如何做到这一点......

!!$("div.testDivClass:contains('Some text!')").find(".testSpanClass").length;

两个感叹号将0转换为false,将任何其他数字转换为true。