Jquery - 包含返回意外结果的方法

时间:2010-12-10 18:37:06

标签: javascript jquery jquery-ui

例如:http://jsfiddle.net/SsPqS/

我有一个带有class =“record”的div我将一个click函数添加到具有类“record”的每个对象。在点击功能中,我有:(简化)

$(".record").click(function(e) {
                if (!$(e.target).is(':button')) {
                    if ($.contains($(this).parents(".parentDiv"), $("#UserInformation"))) {
                        alert("true");
                    } else {
                        alert("false");
                    }
                }
            });

我一直得到真正的警报,但我不确定为什么因为#UserInformation证明不属于“parrentDiv”类的div

我使用包含函数错了吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

$.contains()旨在获取DOM元素,如下所示:

if ($.contains($(this).closest(".parentDiv")[0], $("#UserInformation")[0])) {

You can test the updated demo here

答案 1 :(得分:1)

我认为你应该使用has()方法

$(".record").click(function(e) { 
    if (!$(e.target).is(':button')) { 
        if ($(this).closest(".parentDiv").has("#UserInformation").length) {             
            alert("true"); 
        } 
        else { 
            alert("false"); 
        }
    } 
});

http://api.jquery.com/has-selector/

描述:选择包含至少一个与指定选择器匹配的元素的元素。