2017-02-13 163 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

相關問題