循环输入元素并获取以'value_'开头的所有ID

时间:2013-02-14 13:52:26

标签: javascript javascript-events

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);
    }
}

我使用条件只获取以值_

开头的输入ID
if (document.getElementById("value_[0-9]"))

但在我的表单中有5个或更多ID时,没有任何内容。即value_1,value_2,value_3等。

3 个答案:

答案 0 :(得分:5)

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

for (var i = 0, len = inputs.length; i < len; i++) {
    if (inputs[i].id.indexOf("value_") === 0) {
        // alert("Found: " + inputs[i].value);
    }
}

答案 1 :(得分:1)

[].map.call(document.getElementsByTagName( 'input' ), function( input ) {
    return input.id.indexOf( 'value_' ) === 0;
}).forEach(function( input ) {
    // do whatever here
});

答案 2 :(得分:1)

document.querySelectorAllArray.prototype.slice结合使其成为数组

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

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