嗨,我有一个像这样的数组。
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);
}
我打印好10个输入框。
稍后我需要获取我创建的文本框的数量。所以我正在使用
var myarr=document.getElementsByName('TxtBx_');
var numberofElements=myarr.length;
但是当我发出警告来检查numberofElements的值时,它总是给我0.数组的长度必须是10.有人可以让我知道我犯的错误。
答案 0 :(得分:2)
元素的名称为TextBx[]
,而不是TxtBx_
。
var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;
答案 1 :(得分:2)
元素名称为TextBx[]
,TxtBx_
为类名
var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;
阅读getElementsByName()文档以获取更多信息
答案 2 :(得分:1)
因为没有元素名称为TxtBx_
。它实际上是TextBx[]
。
由于你使用jQuery,你可以按照下面的类找到
$('.txtbx')
。长度
很少有其他事情,我想在这里补充一下。
attr
也接受一个对象。因此,您可以一次传递所有输入。此外,您可以在动态创建input
时将属性作为第二个参数传递。此外,根据jQuery文档,您应该在type
类型中指定input
,同时动态创建它们,否则它将无法在某些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);
}
答案 3 :(得分:1)
var numberofElements = document.getElementsByName("TextBx[]").length;
文字框的名称为'name','TxtBx_[]'
TxtBx_
。
答案 4 :(得分:0)
试试吧
$("input.txtbx").length;
答案 5 :(得分:0)
只需使用该类来获取它们:
var numberofElements = $('.txtbx').length;