ближайший узел предка в jQuery

Вы можете решить эту проблему, отложив выполнение вашей функции-

<body id="bodyTag" onload="changeTheStatusWithDelay()">

<script>


// IT IS THE FUNCTION WHICH WILL BE CALLED FROM BODY TAG

function changeTheStatusWithDelay(){


// IT WILL DELAY YOUR EXECUTION OF THE FUNCTION
setTimeout(changeItNow, 2000);

}

//NOW YOU CAN PASTE ALL OF YOUR CODE HERE

function changeItNow(){

var database = firebase.database();
var user = firebase.auth().currentUser;

if (user != null) {




user.providerData.forEach(function (profile) {
var storeTheEmail= profile.email;
console.log(storeTheEmail);



});
}
}

</script>
14
задан nickf 14 October 2008 в 14:17
поделиться

4 ответа

Редактирование : Начиная с jQuery 1.3 это было встроено как closest() функция. например: $('#foo').closest('.bar');

<час>

да - родители () пересекает дерево.

<div id="a">
    <div id="b">
        <p id="c">
            <a id="d"></a>
        </p>
    </div>
</div>

$('#d').parents("div:first"); выберет отделение b.

20
ответ дан 1 December 2019 в 06:49
поделиться

Добавление к ответу @ nickf :

jQuery 1.3 упростил эту задачу с помощью ближайшего .

Учитывая DOM:

<div id="a">
    <div id="b">
        <p id="c">
            <a id="d"></a>
        </p>
    </div>
</div>

Вы можете:

$('#d').closest("div"); // returns [ div#b ]

[ Ближайший возвращает] набор элементы, содержащие ближайшего родителя элемент, соответствующий указанному селектор, начальный элемент включен.

16
ответ дан 1 December 2019 в 06:49
поделиться

Вам следует использовать ближайший , потому что родители не дадут вам ожидаемого результата, если вы работаете с несколькими элементами. Например, предположим, что у вас есть это:

    <div id="0">
        <div id="1">test with <b>nested</b> divs.</div>
        <div id="2">another div.</div>
        <div id="3">yet <b>another</b> div.</div>
    </div>

, и вы хотите добавить класс к разделам div, у которых есть элемент в качестве их непосредственного дочернего элемента (т.е. 1 и 3). Если вы используете $ ('b'). Родители ('div') , вы получите div 0, 1 и 3. Если вы используете $ ('b'). Parent ('div: first ') , вы получите только div 1. Чтобы получить 1 и 3, но не 0, вы должны использовать $ (' b '). closest (elem) .

3
ответ дан 1 December 2019 в 06:49
поделиться

closest() начинает с текущего элемента, если родитель, которого вы ищете, имеет тот же тег, что и текущий (например, оба являются div), используйте parent().closest()

3
ответ дан 1 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: