2017-02-13 5 views
1

У меня есть пример, как это:Проверьте, если объект HTML находится внутри другого HTML объекта

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

есть простой способ в JavaScript, или JQuery, что мы можем проверить, если DIV «Major» является дочерним элементом всех других дивизий? Спасибо.

+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 = $ ('# President'), это не сработает. Могу ли я использовать $() в этом случае? –

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

Вы имеете в виду '$ ('# President'). Имеет ('# Major')' –

+0

@blex в соответствии с [docs] (https://api.jquery.com/has/) они имеют это право – maccettura

2

ли дети всех других дивы (с помощью JQuery):

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

+0

Спасибо за ваш ответ :) –

+0

Это самый простой и короткий ответ, который проверяет, что все divs являются родителями '# Major'. – blex

Смежные вопросы