我有一个DOM元素如下;
<div id="myDiv">
<jstl:tag1 />
<jstl:tag2 />
</div>
现在你可以看到,我有一个JSTL标签可以返回一些文本值。
我需要最后使用jQuery检查我的DOM元素“myDiv”是否为空。
不幸的是我不能做一个简单的$("#myDiv").html() == ""
,因为即使JSTL标签没有重新调整任何值,我在div中得到新的行字符为\ n和所有
如何考虑空节点的检查?
答案 0 :(得分:1)
怎么样:
$('#myDiv').html().trim() == "";
答案 1 :(得分:0)
您可以进行正则表达式测试
/\w+/.test($("#myDiv").html())
它将测试至少一个单词字符,如字母数字字符。
答案 2 :(得分:0)
尝试这样的事情,使用text()而不是html()
$("#myDiv").text().trim();
答案 3 :(得分:0)
您可以测试元素中非空白节点的数量:
var nodes = $('#myDiv')[0].childNodes;
var nonempty = [];
for(i=0; i<nodes.length;i++){
if(nodes[i].nodeType !== 3 || nodes[i].nodeValue.trim() !== "" ){
nonempty.push(nodes[i]);
}
}
//this should be 0 if empty
alert(nonempty.length);
答案 4 :(得分:0)
var isEmpty = $.trim( $('#myDiv').text() ).length === 0;