好的我在变量中保存了一个jquery对象,我想测试它是否是另一个对象的父对象。这可能吗?
var fatherElement= $('#fatherElement');
if($('#sonElement').parents(fatherElement).length>0){
alert('Luke I AM your father!');
}
你抓住了我的漂移吗?
喜欢这个问题的一些帮助:)
答案 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'