2013-02-27 94 views
0

我有一個DOM元素如下;jquery檢查空節點

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

現在你可以看到,我有一個JSTL標籤,可以返回一些文本值。

我需要最後檢查,如果我的DOM元素「myDiv」使用jQuery是空..

可惜我不能做一個簡單的$("#myDiv").html() == ""因爲即使JSTL標籤不retun任何價值,我得到新行字符裏面的div作爲\ n和所有

如何解釋那些空節點檢查?

+0

你所說的 「空」 是什麼意思?不包含非空白文本節點? – 2013-02-27 08:31:20

+0

嘿Testndtv - 看到我的答案,你可以.trim走新行。 – 2013-02-27 08:33:57

回答

0

你可以做一個正則表達式測試

/\w+/.test($("#myDiv").html()) 

它將測試像字母數字字符至少一個字字符。

1

怎麼樣:

$('#myDiv').html().trim() == ""; 
0

嘗試)這樣的事情,使用文本(而不是HTML()

$("#myDiv").text().trim(); 
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/

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

FIDDLE