[英]Using document.getElementsByName to select multiple options within an array
[英]Get the length of an array using document.getElementsbyName()
嗨,我有一個像這樣的數組。
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。有人可以讓我知道我犯的錯誤。
元素的名稱是TextBx[]
,而不是TxtBx_
。
var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;
元素名稱是TextBx[]
, TxtBx_
是類名稱
var myarr=document.getElementsByName('TextBx[]');
var numberofElements=myarr.length;
閱讀getElementsByName()文檔以獲取更多信息
因為沒有元素的名稱為TxtBx_
。 實際上是TextBx[]
。
由於您經常使用jQuery,因此可以按如下所示通過類進行查找,
$('.txtbx')
其他幾件事,我想在這里補充。
attr
接受一個對象。 因此,您可以一次傳遞所有輸入。 此外,您可以在動態創建input
時將屬性作為第二個論點進行傳遞。 另外,根據jQuery文檔,您應該在動態創建input
類型時在input
類型中指定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);
}
var numberofElements = document.getElementsByName("TextBx[]").length;
文本框'name','TxtBx_[]'
為'name','TxtBx_[]'
通過TxtBx_
獲得。
試試吧
$("input.txtbx").length;
只需使用該類即可獲取它們:
var numberofElements = $('.txtbx').length;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.