Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.03.2018, 09:02
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 259

Получение родительского элемента
Есть верстка с многоуровневой вложенностью.
<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?
Ответить с цитированием
  #2 (permalink)  
Старый 20.03.2018, 09:10
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 259

Нужно аналог parents в JQuery. perentNode возвращает прямого родителя
Ответить с цитированием
  #3 (permalink)  
Старый 20.03.2018, 09:24
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,450

<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>
Ответить с цитированием
  #4 (permalink)  
Старый 20.03.2018, 09:47
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 2,785

<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>


более универсальное решение
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получение значений из массива и вставка нового элемента malefikus13 Общие вопросы Javascript 7 06.10.2015 11:56
Расстояние до края родительского элемента 1lider Events/DOM/Window 1 01.03.2015 19:32
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 19:21
Убрать наследование return false от родительского элемента GBelka jQuery 7 02.09.2012 08:51
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 12:28