有趣的是,我很难找到一种确定HTML元素是否在另一个元素之内的半途而废的方法-看来这应该是遍历和分析HTML DOM的基本核心功能。令我惊讶和失望的是,没有“hasDescendant”(或类似方法)方法。

我正在尝试这样做:

var frog = $('#frog');
var walrus = $('#walrus');
if (frog.hasDescendant(walrus)) console.log("Frog is within walrus.");
else console.log("Frog is outside walrus.");

我尝试用许多jQuery组合重现我要寻找的内容。
walrus.is(frog.parents());
walrus.has(frog);
walrus.find(' *').has(frog);
frog.is(walrus.find(' *'));

我还没有找到可行的解决方案。

[编辑]
解决方案: walrus.has(frog) 备用: if (walrus.has(frog)) { doStuff(); } 备用: var booleanResult = walrus.has(frog).length>0;
//追。

最佳答案

使用

if (walrus.has(frog).length) {
  // frog is contained in walrus..
}

http://jsfiddle.net/gaby/pZfLm/上的演示

替代
if ( $('#frog').closest('#walrus').length ){
      // frog is contained in walrus..
}

http://jsfiddle.net/gaby/pZfLm/1/上的演示

关于javascript - JavaScript/jQuery:hasDescendant/hasAncestor,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8034582/

10-11 14:48
查看更多