Селектор jQuery для родителя с прямым потомком

75
11

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

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

$("parent > child")

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

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

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

$("component:has(section)")

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

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

спросил(а) 2015-10-22T23:07:00+03:00 5 лет, 4 месяца назад
1
Решение
87

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

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

На основе этого ответа: выбор элемента, который имеет другой элемент в качестве прямого дочернего элемента. Обратите внимание, что это не чистый селектор CSS, а селектор, специфичный для jQuery.

ответил(а) 2015-10-22T23:13:00+03:00 5 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема