0

私は次のようなDOM要素を持っています。

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

ご覧のとおり、テキスト値を返すことができるJSTLタグがあります。

最後に、jQueryを使用してDOM要素「myDiv」が空かどうかを確認する必要があります。

残念ながら$("#myDiv").html() == ""、JSTLタグが値を再調整しなくても、単純なことはできません。div内に\nおよびallとして改行文字を取得します。

空のノードのチェックをどのように説明しますか?

4

5 に答える 5

1

どうですか:

$('#myDiv').html().trim() == "";
于 2013-02-27T08:32:03.290 に答える
0
var isEmpty = $.trim( $('#myDiv').text() ).length === 0;

フィドル

于 2013-02-27T08:40:27.713 に答える
0

正規表現テストを行うことができます

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

英数字のような少なくとも1つの単語文字をテストします。

于 2013-02-27T08:30:36.697 に答える
0

このようなことを試してください。html()の代わりにtext()を使用してください

 $("#myDiv").text().trim();
于 2013-02-27T08:32:26.537 に答える
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/

于 2013-02-27T08:40:02.817 に答える