Селектор :has
Описание: Выбирает элементы, содержащие по крайней мере один элемент, соответствующий заданному селектору.
-
версия добавлена: 1.1.4jQuery( ":has(selector)" )
selector: Любой селектор.
Выражение $( "div:has(p)" ) соответствует <div>, если <p> существует где-либо среди его потомков, а не только как непосредственный потомок.
Дополнительные заметки:
- Поскольку
:has()является расширением jQuery и не входит в спецификацию CSS, запросы, использующие:has(), не могут воспользоваться улучшением производительности, предоставляемым родным методом DOMquerySelectorAll(). Для лучшей производительности в современных браузерах используйте$( "your-pure-css-selector" ).has( selector/DOMElement )вместо него.
Пример:
Добавляет класс "test" ко всем div, которые содержат абзац внутри.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>has demo</title>
<style>
.test {
border: 3px inset red;
}
</style>
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
<div><p>Hello in a paragraph</p></div>
<div>Hello again! (with no paragraph)</div>
<script>
$( "div:has(p)" ).addClass( "test" );
</script>
</body>
</html>