Javascript:获取id为id [x]的所有元素

abe*_*bel 11 javascript

使用javascript如何获取id为[x]的元素数量?

示例HTML:

<input name="vrow[0]" id="vrow[0]" value="0" type="text"/>
<input name="vrow[1]" id="vrow[1]" value="0" type="text"/>
<input name="vrow[2]" id="vrow[2]" value="0" type="text"/>
<input name="vrow[3]" id="vrow[3]" value="0" type="text"/>
Run Code Online (Sandbox Code Playgroud)

上面的html是根据用户输入生成的.如何使用javascript检测存在多少元素?

目前我可以检测到这样的元素的存在

示例Javascript

if(document.getElementById('vrow[0]')){
var row=0;
    }
if(document.getElementById('vrow[1]')){
row=1;
    }
...
Run Code Online (Sandbox Code Playgroud)

And*_*y E 17

[] 在HTML4.01 中的ID属性不是有效字符.但是,即使在HTML5中,也应使用name属性(不带数字索引),然后使用getElementsByName():

<input name="vrow" value="0" type="text"/>
<input name="vrow" value="0" type="text"/>
<input name="vrow" value="0" type="text"/>
<input name="vrow" value="0" type="text"/>
Run Code Online (Sandbox Code Playgroud)
var vrows = document.getElementsByName("vrow");
alert(vrows.length);
Run Code Online (Sandbox Code Playgroud)

请注意,旧版本的IE和Opera可能会返回具有与getElementsByName()中id指定的名称相同的值的元素.IE还可以返回具有相同值的name属性的非输入元素.