0
var inputs = document.getElementsByTagName("input");


for (var i = 0; i < inputs.length; i++)
{
    if (document.getElementById("value_[0-9]"))
    {
        alert('found: ' + inputs[i].value);
    }
    else
    {
        alert(inputs[i].value);
    }
}

我正在使用该条件仅获取以value_开头的输入 ID

if (document.getElementById("value_[0-9]"))

但是当我的表单中有 5 个或更多 ID 时,一切都不是真的。即 value_1、value_2、value_3 等。

4

3 回答 3

5

你为此使用了错误的方法。只需检查id列表中某个元素的属性:

for (var i = 0, len = inputs.length; i < len; i++) {
    if (inputs[i].id.indexOf("value_") === 0) {
        // alert("Found: " + inputs[i].value);
    }
}
于 2013-02-14T13:53:52.693 回答
1
[].map.call(document.getElementsByTagName( 'input' ), function( input ) {
    return input.id.indexOf( 'value_' ) === 0;
}).forEach(function( input ) {
    // do whatever here
});
于 2013-02-14T13:55:36.740 回答
1

结合使其成为document.querySelectorAll一个数组Array.prototype.slice

Array.prototype.slice.call(document.querySelectorAll('input[id^="value_"]'));

从这里你可以做你最喜欢的循环,例如Array.prototype.forEach

于 2013-02-14T13:56:42.470 回答