如果div包含<p>标记,则jQuery返回true或false

use*_*210 6 html jquery

让我们来看看:

<div><p>this div contains a p tag</p></div>
<div>this one is not</div>
Run Code Online (Sandbox Code Playgroud)

如果div在上面的示例中包含像p这样的特定标记,我如何为布尔值(true或false)赋值?

cle*_*tus 17

$("div:has(p)").addClass("has-paragraph");
Run Code Online (Sandbox Code Playgroud)

将为包含p个子节点的所有div添加一个类.如果段落不是直接的孩子,这将不会捡起来.

注意:这样做:

$("div p").addClass("has-paragraph");
Run Code Online (Sandbox Code Playgroud)

将该类添加到而不是div.您可以通过这样做来解决这个问题:

$("div p").parents("div").addClass("has-paragraph");
Run Code Online (Sandbox Code Playgroud)

但这会抓住多个div的祖先.你可以这样做:

$("div p").parents("div:first").addClass("has-paragraph");
Run Code Online (Sandbox Code Playgroud)

解决这个问题.

或者更多编程:

$("div").each(function() {
  if ($(this).find("p").length > 0) {
    // do stuff
  }
});
Run Code Online (Sandbox Code Playgroud)


kar*_*m79 5

给你的div一个ID,然后:

if($('#myDiv p').length) {
    alert('I have a paragraph');
}
Run Code Online (Sandbox Code Playgroud)