jQuery:contains()总是返回true

时间:2011-09-23 20:04:17

标签: javascript jquery

我有一个父jQuery对象和一个子jQuery元素 我想看看孩子是否已经包含在父母中。我在考虑使用jQuery的contains()方法。但是,在Chrome和IE中我总是返回true,在FF6中我收到错误a.compareDocumentPosition is not a function

我错误地使用了这个吗?有没有更好的方法来实现这一目标?

Fiddle

代码:

<div class="metroContainer">
<div class="metroBigContainer">
    <div id="big1" class="metroBig">
        Stuffs 1
    </div>

    <div id="big2" class="metroBig">
        Stuffs 2
    </div>
</div>

<div class="otherContainer">
</div>

// I expect false, returns true
$.contains($('.metroBigContainer'), $('.otherContainer'))

2 个答案:

答案 0 :(得分:8)

我相信包含dom元素,而不是jquery对象:

$.contains($('.metroBigContainer')[0], $('.otherContainer')[0])

答案 1 :(得分:2)

你也可以尝试测试长度

$('.metroBigContainer .otherContainer').length

如果它是1(或大于1)那么它就存在,如果不存在那么它就不存在了。