根据ID值选择DOM元素

时间:2013-05-02 16:27:57

标签: javascript

我在DOM中有一些文本框,比如

<INPUT id=txtQuantity587117 />
<INPUT id=txtQuantity587118 />
<INPUT id=txtQuantity587119 />
<INPUT id=txtQuantity587111 />
<INPUT id=txtQuantity587112 />

这些元素都是嵌套的,不在任何特定的父节点下。

有没有办法选择id文本以“txtQuantity”开头的所有输入元素。

我想用javascript而不是Jquery。感谢。

3 个答案:

答案 0 :(得分:6)

在现代浏览器中(以及IE8 ... 现已验证),您可以使用document.querySelectorAll() attribute-starts-with选择器。

var els = document.querySelectorAll("input[id^=txtQuantity]");

答案 1 :(得分:4)

以下是一些不依赖于Array.filter之外的任何“现代”API调用的代码,它比document.querySelectorAll更容易填充:

var els = [].filter.call(document.getElementsByTagName('input'), function(el) {
    return /^txtQuantity/.test(el.id);
});

使用适当的垫片,这应该适用于MSIE 5.5以上的任何浏览器。

请参阅http://jsfiddle.net/alnitak/9jEzj/

答案 2 :(得分:3)

没问题......

var inputs = document.getElementsByTagName("input");
var matches = [];

for(var i = 0; i < inputs.length; i++){
    var input = inputs[i];
    if(input.id.indexOf("txtQuantity") == 0){
        matches.push(input);
    }
}

//matches will be an array of the matched elements

Here is a working example

相关问题