@DeniSidorenko

Можно ли указать селектор для parentNode?

Привет, как всем известно в jquery можно указать $(selector).parent(selector);

Дело в том что начал работать на чистом js, и там nodeParent которые не принимает селектор. Как по другому сделать, ибо parent находится на 7 уровней высше и писать постоянно nodeParent.nodeParent не хочется. и возможно ли это?
  • Вопрос задан
  • 197 просмотров
Решения вопроса 2
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Если нужно указать на селектор, то на него лучше и указывать. Есть querySelector().
А вот если нужно именно найти родительский элемент в цепочке родителей, удовлетворяющий каким-то условиям, то можно сделать несложную рекурсивку

<div id="target">
	<div></div>
	<div>
		<p onclick="console.log('findParent= ', findParent(this, {id:'target'}));">Найти родителя с id="target"</p>
	</div>
</div>
<script>
	'use strict';
	function findParent (o, cond) {
		o= o.parentNode;
		return (o && o.id && (o.id === cond.id))? o : findParent(o, cond);
	}
</script>
Ответ написан
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ну только если через while как-то:
// текущий элемент
var element = ...;
while(%условие по которому ищите%) {
    element = element.parentNode;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы