Получение родительского элемента
Есть верстка с многоуровневой вложенностью.
<div class="month" data-month="3">
<div class="week">
<div class="day">
3
</div>
</div>
</div>
<div class="month" data-month="4">
<div class="week">
<div class="day">
13
</div>
</div>
</div>
Как получить атрибут data-month? |
Нужно аналог parents в JQuery. perentNode возвращает прямого родителя :(
|
<div class="month" data-month="3">
<div class="week">
<div class="day">
3
</div>
</div>
</div>
<div class="month" data-month="4">
<div class="week">
<div class="day">
13
</div>
</div>
</div>
<script>
var days = document.querySelectorAll('.day');
for(var i=0; i < days.length; i++) {
alert( days[i].parentNode.parentNode.getAttribute('data-month'));
}
</script>
|
<div class="month" data-month="3">
<div class="week">
<div class="day">
3
</div>
</div>
</div>
<div class="month" data-month="4">
<div class="week">
<div class="day">
13
</div>
</div>
</div>
<script>
[].forEach.call(document.querySelectorAll('.day'), function(el){
while (el = el.parentNode) {
if (el.dataset.month) {
console.log(el.dataset.month);
break;
}
}
});
</script>
более универсальное решение |
| Часовой пояс GMT +3, время: 04:42. |