1

ページ上のすべての要素を含む配列があります。配列をループしているときに要素に子がないかどうかをテストするにはどうすればよいですか?私は標準のJavaScriptを使い続けたいと思います。これを説明する擬似コードは次のとおりです。

for each element in elementlist:
    if element is childless:
        do something
    else:
        do something different
4

5 に答える 5

2

ブール値を返すhasChildNodesメソッドを使用できます

element.hasChildNodes(); 
于 2013-02-08T22:45:58.600 に答える
0

純粋なJSでは、elem.firstChildがnullかどうかをテストし、jQueryでは、elem.children()。length>0でテストできます。

于 2013-02-08T22:05:51.293 に答える
0

で子ノードの数を取得できますelement.childNodes.length。に等しい場合0、ノードは子なしです。

于 2013-02-08T22:05:59.463 に答える
0

これが簡単な解決策とデモです。これには、テキストノードである子を持つ要素が含まれます。

var arr = [document.getElementById("a1"),
           document.getElementById("a2"),
           document.getElementById("a3"),
           document.getElementById("a4")];

var isChildless = function(ele){
    return ele.childNodes.length <= 0;
}

for (var x = 0; x < arr.length; x++){
    console.log(isChildless(arr[x]));
}

http://jsfiddle.net/HTbuB/1/

于 2013-02-08T22:09:54.213 に答える
0

配列が長い場合は使用してみてください

 var z=arr.length;
 for (var x = 0; x < z ; x += 1){
 console.log(isChildless(arr[x]));

長さを 1 回カウントします。前の例では、すべてのループで arr.length をカウントします。

于 2013-02-08T22:58:12.013 に答える