我需要选择没有子节点的元素(包括文本,因为在<p>文本中是子节点)。
我用过empty,但它也将空间视为子节点。
例子:
标记:
<span> </span>
<span></span>
脚本:
$("span:empty").html("this was empty!");
不幸的是,只有第二个元素被选中和更改,因为第一个元素有空间并且它被认为是子节点。
如何选择没有子节点的元素?我想将空间视为虚无。最好,我希望代码不要使用循环来选择它们,可能还有其他方法。
我需要选择没有子节点的元素(包括文本,因为在<p>文本中是子节点)。
我用过empty,但它也将空间视为子节点。
例子:
标记:
<span> </span>
<span></span>
脚本:
$("span:empty").html("this was empty!");
不幸的是,只有第二个元素被选中和更改,因为第一个元素有空间并且它被认为是子节点。
如何选择没有子节点的元素?我想将空间视为虚无。最好,我希望代码不要使用循环来选择它们,可能还有其他方法。
$.expr[":"]["no-children"] = function( elem ) {
return !elem.firstChild || !$.trim(""+ elem.firstChild.nodeValue);
};
$("span:no-children").html("this was empty");
</p>
jQuery 有一个令人惊讶的“功能” ,可以在我期待的时候$.trim转换null为. 手动转换为字符串可以解决此问题。"""null"
试试这个
$("span").each(function(){
if($(this).text().trim()=='')
$(this).text('Empty');
});
如果您不喜欢每个功能,那么
$("span").html(function(){
if($(this).text().trim()=='')
return 'Empty';
});