如何使用javascript获取表单中文本框的数量?

如何使用javascript获取表单中文本框的数量?,javascript,textbox,Javascript,Textbox,如何使用javascript获取表单中文本框的数量? 提前感谢。var inputs=document.getElementsByTagName('input'); var inputs = document.getElementsByTagName('input'); var count = 0; for(var cpt = 0; cpt < inputs.length; cpt++) if (inputs[cpt].type == 'text') count++; alert(coun

如何使用javascript获取表单中文本框的数量? 提前感谢。

var inputs=document.getElementsByTagName('input');
var inputs = document.getElementsByTagName('input');
var count = 0;
for(var cpt = 0; cpt < inputs.length; cpt++)
if (inputs[cpt].type == 'text') count++;
alert(count);
var计数=0; 对于(var cpt=0;cpt
var node_list=document.getElementsByTagName('input');
var c=0;
对于(变量i=0;i
这将更快:

Array.prototype.slice.apply(document.getElementsByTagName('input')).length;
但它不会分离输入类型。如果必须这样做,请像上面那样创建数组,然后循环遍历数组并选择正确类型的成员,然后检查结果数组的长度

(function () {
    var arr = Array.prototype.slice.apply(document.getElementsByTagName('input')),
    i = arr.length, item, textOnlyArray = [];
    while (i--) {
        item = arr[i];
        if (item.hasOwnProperty("type") && item.type === "text") {
            textOnlyArray.push(item);
        }
    }
    return textOnlyArray;
}());

如果不需要支持旧的/过时的浏览器,也可以使用Array.forEach。这比while(我--)还要快

。。。但不准确,因为它将计算所有类型的
,而不仅仅是文本框。hasOwnProperty被误用。。。您在这里使用它是因为您修改了对象的原型吗?这首先是个坏主意。hasOwnProperty的真正问题是您无法检查继承的属性。GôTô的答案更简单明了,我正在检查DOM节点的属性,所以我不想要继承的属性。未修改对象属性。我想你误解了。apply()的作用。
(function () {
    var arr = Array.prototype.slice.apply(document.getElementsByTagName('input')),
    i = arr.length, item, textOnlyArray = [];
    while (i--) {
        item = arr[i];
        if (item.hasOwnProperty("type") && item.type === "text") {
            textOnlyArray.push(item);
        }
    }
    return textOnlyArray;
}());