我有一个这样的例子:检查HTML对象是内另一个HTML对象
<div id="President">
<div id="Congressman">
<div id="Senator">
<div id="Major"></div>
</div>
</div>
</div>
是否有Javascript或jQuery的一个简单的方法,我们可以检查,如果格“主要”是一个子元素所有其他divs?谢谢。
我有一个这样的例子:检查HTML对象是内另一个HTML对象
<div id="President">
<div id="Congressman">
<div id="Senator">
<div id="Major"></div>
</div>
</div>
</div>
是否有Javascript或jQuery的一个简单的方法,我们可以检查,如果格“主要”是一个子元素所有其他divs?谢谢。
使用JavaScript node.contains(other node)
var qS = function(v) { return document.querySelector(v); };
console.log(qS('#President').contains(qS('#Major')))
<div id="President">
<div id="Congressman">
<div id="Senator">
<div id="Major"></div>
</div>
</div>
</div>
更新基于评论,结合jQuery和普通的javascript
console.log($('#President')[0].contains($('#Major')[0]))
<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>
我现在就试试这个。谢谢你的回答:) –
@LanMai新增了一个样本如何到 – LGSon
非常感谢!你的答案奏效!只是一个小问题:如果我使用var outer = $('#总统')它将无法正常工作。在这种情况下,我可以使用$()吗? –
这不是做的最好的方式,但它是一个简单的,它的工作原理
$('#President').find('#Major').length !== 0
使用has()
:
console.log($('#President').has('#Major').length > 0)
<script src="https://code.jquery.com/jquery-3.1.1.min.js"
\t integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
\t crossorigin="anonymous">
</script>
<div id="President">
<div id="Congressman">
<div id="Senator">
<div id="Major"></div>
</div>
</div>
</div>
我现在就试试这个。谢谢你的回答:) –
你的意思是$('#总统')。has('#Major')' –
@blex根据[docs](https://api.jquery.com/has/)他们有权利 – maccettura
是所有其他的div的儿童(使用jQuery):
$('#Major').parents('#Senator,#Congressman,#President').length === 3
谢谢你的回答:) –
这是检查所有div是'#Major'的父母的最简单和最短的答案。 – blex
所以你必须检查它是否是他们的孩子? – BenM
我认为在这种情况下,我们可以有一个循环。 –