ページ上のすべての要素を含む配列があります。配列をループしているときに要素に子がないかどうかをテストするにはどうすればよいですか?私は標準のJavaScriptを使い続けたいと思います。これを説明する擬似コードは次のとおりです。
for each element in elementlist:
if element is childless:
do something
else:
do something different
ページ上のすべての要素を含む配列があります。配列をループしているときに要素に子がないかどうかをテストするにはどうすればよいですか?私は標準のJavaScriptを使い続けたいと思います。これを説明する擬似コードは次のとおりです。
for each element in elementlist:
if element is childless:
do something
else:
do something different
ブール値を返すhasChildNodesメソッドを使用できます
element.hasChildNodes();
純粋なJSでは、elem.firstChildがnullかどうかをテストし、jQueryでは、elem.children()。length>0でテストできます。
で子ノードの数を取得できますelement.childNodes.length
。に等しい場合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]));
}
配列が長い場合は使用してみてください
var z=arr.length;
for (var x = 0; x < z ; x += 1){
console.log(isChildless(arr[x]));
長さを 1 回カウントします。前の例では、すべてのループで arr.length をカウントします。