とhtml要素の数を計算= 'mydiv'.Iは、これらのdivを計算したいとIAMがしかし、それは私は同じIDを持つ複数のdiv要素を持っているjsの
document.getElementById('mydiv').length
動作していないコードを使用して
とhtml要素の数を計算= 'mydiv'.Iは、これらのdivを計算したいとIAMがしかし、それは私は同じIDを持つ複数のdiv要素を持っているjsの
document.getElementById('mydiv').length
動作していないコードを使用して
これは、指定されたIDがECMA
getElementById(elementId) This method returns a Element. The elementId
parameter is of type DOMString.
から
存在しない場合は、必ず指定されたIDとヌルを持つ要素を返しますgetElementById
として動作しません。何各部門をクラスに割り当てることができます
<div class="mydiv"></div>
<div class="mydiv"></div>
<div class="mydiv"></div>
<div class="mydiv"></div>
<div class="mydiv"></div>
そして、反復処理:
alert(document.getElementsByClassName('mydiv').length)
あなたがすべきことは、IDの代わりにクラスを使用することです。 IDは1つの要素のみであり、クラスは複数の要素です。
あなたは同じIDを持つ複数の要素について言われてきたが、まれにそれは可能性があります:
var divs = document.getElementsByTagName('div');
var count = 0;
for(var i = 0; i < divs.length; i++) {
if(divs[i].className == 'mydiv') count++;
}
alert(count);
をクライアントがdocument.getElementsByClassName()
をサポートしている場合、それはさらに簡潔です避けられない(例えばコントロールを持たないXMLドキュメント)。唯一の不都合な動作は、通常、IDで選択すると最初のものだけが返されます(しかし、それは保証されません)。
同じIDを持つ要素を数えるには、ドキュメント内のすべての要素をループし、一致するIDを持つ要素を数えます。
function countSameIds(id) {
var allNodes = document.getElementsByTagName('*');
for (var i=allNodes.length, count=0; i;) {
if (allNodes[--i].id == id) {
++count;
}
}
return count;
}
まあ、**常に**。一致する要素が見つからない場合は 'null 'を返します。 ;-) – RobG
@RobGそれを指摘してくれてありがとう –