我在DOM中有一些文本框,比如
<INPUT id=txtQuantity587117 />
<INPUT id=txtQuantity587118 />
<INPUT id=txtQuantity587119 />
<INPUT id=txtQuantity587111 />
<INPUT id=txtQuantity587112 />
这些元素都是嵌套的,不在任何特定的父节点下。
有没有办法选择id文本以“txtQuantity”开头的所有输入元素。
我想用javascript而不是Jquery。感谢。
答案 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以上的任何浏览器。
答案 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