检查HTML对象是否在另一个HTML对象中

时间:2017-02-13 20:33:58

标签: javascript jquery html

我有一个这样的例子:

<div id="President">
  <div id="Congressman">
    <div id="Senator">
      <div id="Major"></div>
    </div>
  </div>
</div>

在Javascript或jQuery中是否有一种简单的方法可以检查div&#39; Major&#39;是所有其他div的子元素?谢谢。

4 个答案:

答案 0 :(得分:3)

使用javascript node.contains(other node)

&#13;
&#13;
var qS = function(v) { return document.querySelector(v); };

console.log(qS('#President').contains(qS('#Major')))
&#13;
<div id="President">
  <div id="Congressman">
    <div id="Senator">
      <div id="Major"></div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

根据评论更新,结合了jQuery和普通javascript

&#13;
&#13;
console.log( $('#President')[0].contains( $('#Major')[0] ) )
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="President">
  <div id="Congressman">
    <div id="Senator">
      <div id="Major"></div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

使用has()

console.log($('#President').has('#Major').length > 0)
<script src="https://code.jquery.com/jquery-3.1.1.min.js" 
	integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
	crossorigin="anonymous">
</script>
<div id="President">
  <div id="Congressman">
    <div id="Senator">
      <div id="Major"></div>
    </div>
  </div>
</div>

答案 2 :(得分:2)

是所有其他div的孩子(使用jquery):

$('#Major').parents('#Senator,#Congressman,#President').length === 3

答案 3 :(得分:0)

这不是最好的方法,但这是一个简单的方法,它的工作原理

(a, b) => {
  if (a < b) {
    return -1;
  }
  if (a > b) {
    return 1;
  }
  return 0;
}