2017-02-13 88 views
1

我有一个这样的例子:检查HTML对象是内另一个HTML对象

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

是否有Javascript或jQuery的一个简单的方法,我们可以检查,如果格“主要”是一个子元素所有其他divs?谢谢。

+3

所以你必须检查它是否是他们的孩子? – BenM

+0

我认为在这种情况下,我们可以有一个循环。 –

回答

3

使用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>

+0

我现在就试试这个。谢谢你的回答:) –

+1

@LanMai新增了一个样本如何到 – LGSon

+0

非常感谢!你的答案奏效!只是一个小问题:如果我使用var outer = $('#总统')它将无法正常工作。在这种情况下,我可以使用$()吗? –

0

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

$('#President').find('#Major').length !== 0 
2

使用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>

+0

我现在就试试这个。谢谢你的回答:) –

+2

你的意思是$('#总统')。has('#Major')' –

+0

@blex根据[docs](https://api.jquery.com/has/)他们有权利 – maccettura

2

是所有其他的div的儿童(使用jQuery):

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

+0

谢谢你的回答:) –

+0

这是检查所有div是'#Major'的父母的最简单和最短的答案。 – blex

相关问题