2015-10-22 2 views
2

Есть ли способ, чтобы написать селектор JQuery (он имеет быть селектор), который будет выбирать все parent элементов, которые содержат определенный child, что является прямым потомком? Это эквивалентно этому XPath: parent[child]JQuery селектор для родителя с прямым потомком

Я уже пробовал следующее:

$("parent > child") 

не работает. Он выбирает дочерние элементы вместо родительских элементов.

$("component > selector").parent() 

Не работает. Мне нужно, чтобы функциональность полностью содержалась в селекторе. Мне нужно, чтобы селектор работал, глядя на обоих предков (например, closest()) и потомков (find()).

$("component:has(section)") 

Не работает. Он выбирает дополнительные родительские элементы, у которых ребенок является более глубоким потомком.

Это похоже на другой question, но мне нужен ответ, чтобы быть селектором.

+0

AFAIK, вы не можете выбрать родительский элемент дочернего элемента с помощью чистых селекторов CSS. Самое близкое к нему (что я знаю) с помощью JQuery - '$ ('childSelector'). Closeest ('parent');' (https://api.jquery.com/closest/) – ochi

ответ

3

Вы правы в использовании :has() selector, но вам нужно указать, что вы ищете только прямых детей.

$("component:has(> section)") 

Основано на этом ответе: Selecting an element which has another element as direct child. Обратите внимание, что это не чистый селектор CSS, а селектор, специфичный для jQuery.

Смежные вопросы