Imはjavascriptに新しいので、各divが直接の子として持つ段落の数を取得しようとしています。divから特定のタイプの直接的な子どもの数を取得
例:
<div id="1">
<p>text</p>
<p>text</p>
<div id="2">
<p>text</p>
</div>
</div>
<div id="3">
<p>text</p>
<p>text</p>
<p>text</p>
</div>
を探している結果IM:
- DIV 1 = 2
- DIV = 1 2
- DIV = 3 3
私が今までに得たコードは次のようになります:
var divs = document.getElementsByTagName('div');
for(var i = 0; i < divs.length; i++){
var count = divs[i].getElementsByTagName('p').childElementCount;
console.log('div ' + i + ' count ' + count);
}
結果:
はなぜ "未定義の" 得るのですか? .childElementCountの代わりに.lengthを使ってみましたが、それでも私には望みの結果が得られませんでした。
jqueryはこの解決方法を見つけるのに苦労しています。jqueryはオプションではありません。
これで、ChildElementCountが機能しませんが、.lengthで目的の結果が得られない理由がわかりました。 – DoesItRlyMatter
いいえ、その戻り値は未定義です。そのdiv0 count3、div1 count1、div2 count3を返します。私が望むものがdiv0 count2、div1 count1、div2 count3です。メインスレッドで探している結果の例を載せようとしました(直接的な子供が正しい言葉であるかどうか疑問に思う)。 – DoesItRlyMatter
@DoesItRlyMatterここでは非常によく似た質問があります:https://stackoverflow.com/questions/15750927/how-to-run-getelementsbytagname-on-children-of-an-element-only#15750959 – Syntac