div的数量是可变的,但它们都共享一个父容器:
<div>
<span><br/></span>
Lorem Ipsum
</div>
<div>
<!-- need a span here -->
Lorem Ipsum
</div>
<div>
<span><br/></span>
Lorem Ipsum
</div>
<div>
<!-- need a span here -->
Lorem Ipsum
</div>
<div>
<span><br/></span>
Lorem Ipsum
</div>
如何将span
标记添加到所有没有标记的div中。所有的跨度都是相同的,它们只是有一个换行符,所以稍后我可以在父级上调用text()
,这些将被转换为\n
,因此分组内容将很好地显示在电子邮件enctype="text/plain"
。
答案 0 :(得分:5)
$('div').filter(function(){
return !$(this).children(':first').is('span');
}).prepend('<span><br/></span>');
答案 1 :(得分:2)
这是我做的小提示。
$("div").not(":has(span)").addClass("red");
您需要做的就是将结尾更改为append("span")
而不是addClass("red")
它简短而甜蜜,我相信它也很合乎逻辑。找到没有跨度的div。
答案 2 :(得分:1)
原来这是有效的,只会将span
视为第一个孩子:
$('div:not(:has(span:first-child))').prepend('<span><br /></span>');
JSFiddle。但它看起来像@kwelch beat me to it。请注意,文本节点不计算在内,因此在您的“Lorem Ipsum”文本之后的<span>
仍然会导致另一个<span>
被添加。
答案 3 :(得分:0)
你可以达到你想要的效果
$("div:not(:has(span))").prepend("<span><br/></span>");
答案 4 :(得分:0)
您可以将其添加到所有人,然后删除重复项:
$('div').prepend('<span><br></span>');
$('div span:first-child').nextAll().remove();