jquery检查空节点

时间:2013-02-27 08:29:17

标签: javascript jquery

我有一个DOM元素如下;

<div id="myDiv">
<jstl:tag1 />
<jstl:tag2 />
</div>

现在你可以看到,我有一个JSTL标签可以返回一些文本值。

我需要最后使用jQuery检查我的DOM元素“myDiv”是否为空。

不幸的是我不能做一个简单的$("#myDiv").html() == "",因为即使JSTL标签没有重新调整任何值,我在div中得到新的行字符为\ n和所有

如何考虑空节点的检查?

5 个答案:

答案 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);

以下是演示:http://jsfiddle.net/DWx8R/

答案 4 :(得分:0)

var isEmpty = $.trim( $('#myDiv').text() ).length === 0;

FIDDLE