Javascript 使用document.getElementsbyName()获取数组的长度

Javascript 使用document.getElementsbyName()获取数组的长度,javascript,Javascript,嗨,我有一个这样的数组 var i; for(i=0;i<10;i++){ $('<input/>').attr('type','text') .attr('name','TxtBx_[]') .attr('id','TxtBx_' + i) .attr("readonly","readonly") .attr('value',i

嗨,我有一个这样的数组

 var i;
 for(i=0;i<10;i++){
     $('<input/>').attr('type','text')
                 .attr('name','TxtBx_[]')
                 .attr('id','TxtBx_' + i)
                 .attr("readonly","readonly")
                 .attr('value',i)
                 .addClass('txtbx')
                 .appendTo($div);
    }     
但当我发出警报检查numberofElements的值时,它总是给我0。数组的长度必须为10。有人能告诉我我犯的错误吗。

试试看

$("input.txtbx").length;

只需使用类来获取它们:

var numberofElements = $('.txtbx').length;

因为没有元素具有名称
TxtBx
。实际上是
TextBx[]

由于您一直在使用jQuery,您可以按如下所示的类查找

$('.txtbx')
.length

我想在这里补充几点

attr
也接受对象。因此,您可以一次传递所有输入。此外,您还可以在动态创建
输入时将属性作为第二个参数传递。另外,根据jQuery文档,在动态创建它们时,您应该在
input
type中指定
type,否则在某些IE中它将不起作用

那么,试试这个

var i;
for(i=0;i<10;i++) {
     $('<input type="text"/>',{
                 'name': 'TxtBx_[]',
                 'id': 'TxtBx_' + i,
                 'readonly':'readonly'
                 'value': i,
                 'class': 'txtbx'
     }).appendTo($div);  
}
vari;

对于(i=0;i元素的名称是
TextBx[]
,而不是
TxtBx

var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;

元素名是
TextBx[]
TxtBx\ux
是一个类名

var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;
阅读文档了解更多信息

var numberofElements = document.getElementsByName("TextBx[]").length;
文本框的名称是
'Name','TxtBx_[]'
通过
TxtBx_[]获取

var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;