如何使用JQueryselect没有特定子元素的元素
有没有一个JQueryselect器来select所有没有特定子元素的元素作为直接子元素? 例如:
<p> text in paragraph </p> <p> <div>text in div</div> </p>  我想只select第一个(没有<div>子)。  这可能吗? 
 进一步的信息:其实我试图插入一个<div>所有那些没有一个这样的expression式的<p> : 
 $('p').wrapInner('<div />') 
 但是这会为第二个<p>添加一个额外的<div> <p> 。 
你可以尝试:
 $("p:not(:has(>div))") 
 您可以将:has() [docs]select器与not函数[docs]结合使用以实现此目的: 
 $("p").not(":has(div)").wrapInner("<div/>"); 
 或者,您可以使用:not() [docs]select器来使用单个select器: 
 $("p:not(:has(div))").wrapInner("<div/>"); 
你可以互换使用,但是IIRC,第一个更快。
看到它在jsFiddle上的行动 。
 请注意, div是块级元素, p不是。 这意味着这是不是有效的HTML嵌套在一个div中的div 。 
尝试这个
 $("p").fitler("not(:has(div))").wrapInner("<div/>"); 
文本元素内部的结构元素对我来说看起来很不干净,但是如果你坚持的话)
 $('p').not(":has(div)").wrapInner("<div/>"); 
这里是一个演示: http : //jsfiddle.net/NTpES/3/
 这似乎工作: $('p:not("p div")')