在jQuery中获取所有没有子节点的元素

前端之家收集整理的这篇文章主要介绍了在jQuery中获取所有没有子节点的元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要选择没有子节点的元素(包括文本,因为在< p>文本中是一个子节点)。

我使用空,但它也考虑空间作为子节点。

例:

标记

<span> </span>
 <span></span>

脚本:

$("span:empty").html("this was empty!");

不幸的是,只有第二个元素被选择和改变,因为第一个元素有空间,它被认为是子节点。

如何选择没有子节点的元素?我想考虑一个空间什么也没有。优选地,我希望代码不使用循环来选择它们,可能有其他方法

解决方法

怎么样
$("span:not(:has(*))")

选择没有子级的所有跨度。

说明

:has()选择器“选择包含至少一个与指定选择器匹配的元素的元素。通配符*表示所有元素。

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

:not()选择器“选择与给定选择器不匹配的所有元素。

在这种情况下,:has()选择所有的东西,然后我们使用:not()来找到不匹配“everything”的元素…换句话说,什么也没有。

Demo

猜你在找的jQuery相关文章