Вы можете решить эту проблему, отложив выполнение вашей функции-
<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>
Редактирование : Начиная с 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.
Добавление к ответу @ 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 ]
[ Ближайший возвращает] набор элементы, содержащие ближайшего родителя элемент, соответствующий указанному селектор, начальный элемент включен.
Вам следует использовать ближайший
, потому что родители
не дадут вам ожидаемого результата, если вы работаете с несколькими элементами. Например, предположим, что у вас есть это:
<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)
.
closest() начинает с текущего элемента, если родитель, которого вы ищете, имеет тот же тег, что и текущий (например, оба являются div), используйте parent().closest()