jQuery:如何使用带有jquery对象的parents()作为参数?

时间:2011-04-06 18:08:38

标签: jquery

好的我在变量中保存了一个jquery对象,我想测试它是否是另一个对象的父对象。这可能吗?

var fatherElement= $('#fatherElement');

if($('#sonElement').parents(fatherElement).length>0){
alert('Luke I AM your father!');
}
你抓住了我的漂移吗? 喜欢这个问题的一些帮助:)

4 个答案:

答案 0 :(得分:3)

if ($('#sonElement').parents("#fatherElement").length > 0)
{
    alert('Luke I AM your father!');
}

.partents以selecor为参数。如果您只在变量中拥有父级,则可以使用jQuery.contains

var fatherElement = $('#fatherElement').get();

if (jQuery.contains($('#sonElement').get(), fatherElement))
{
    alert('Luke I AM your father!');
}

.get只是给我们jQuery对象的DOM元素。

答案 1 :(得分:2)

您可以尝试此操作(搜索fatherElement范围内是否存在sonElement):

var fatherElement= $('#fatherElement'); 
if($('#sonElement', fatherElement).length>0){ 
    alert('Luke I AM your father!'); 
} 

答案 2 :(得分:1)

我认为这就是你要找的东西:

$.fn.hasParent = function(objs) {
    // ensure that objs is a jQuery array
    objs = $(objs); var found = false;
    $(this[0]).parents().andSelf().each(function() {
        if ($.inArray(this, objs) != -1) {
            found = true;
            return false; // stops the each...
        }
    });
    return found;
}

参考:http://blog.bandit.co.nz/post/451104345/jquery-hasparent-function

答案 3 :(得分:0)

根据@Harpyon的回答,这是我的最终解决方案:

var parent = $('#fatherElement')[0];
var child = $('#sonElement')[0];
alert($.contains(parent,child));//alerts 'true' or 'false'