# :has() Selector

Categories: Selectors > Content Filter | Selectors > jQuery Extensions

## has selector

#### version added: 1.1.4jQuery(':has(selector)')

- selector
    Any selector.

Description: Selects elements which contain at least one element that matches the specified selector.

The expression `$('div:has(p)')` matches a `<div>` if a `<p>` exists anywhere among its descendants, not just as a direct child.

### Additional Notes:

- Because `:has()` is a jQuery extension and not part of the CSS specification, queries using `:has()` cannot take advantage of the performance boost provided by the native DOM `querySelectorAll()` method. For better performance in modern browsers, use `$("your-pure-css-selector").has(selector/DOMElement)` instead.

### Example:

#### Adds the class "test" to all divs that have a paragraph inside of them.

    <!DOCTYPE html>
    <html>
    <head>
      <style>
      .test{ border: 3px inset red; }
      </style>
      <script src="http://code.jquery.com/jquery-1.7rc2.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>

#### Demo: