kar*_*m79 51
一种快速简便的方法是使用jQuery并执行以下操作:
var $eles = $(":input[name^='q1_']").css("color","yellow");
Run Code Online (Sandbox Code Playgroud)
这将获取name属性以'q1_'开头的所有元素.要将生成的jQuery对象集合转换为DOM集合,请执行以下操作:
var DOMeles = $eles.get();
Run Code Online (Sandbox Code Playgroud)
见http://api.jquery.com/attribute-starts-with-selector/
在纯DOM中,您可以使用getElementsByTagName
抓取所有输入元素,并循环生成的数组.name
以'q1_'开头的元素被推送到另一个数组:
var eles = [];
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].name.indexOf('q1_') == 0) {
eles.push(inputs[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
gra*_*ine 20
您可以使用getElementsByName("input")来获取页面上所有输入的集合.然后遍历集合,检查路上的名称.像这样的东西:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<input name="q1_a" type="text" value="1A"/>
<input name="q1_b" type="text" value="1B"/>
<input name="q1_c" type="text" value="1C"/>
<input name="q2_d" type="text" value="2D"/>
<script type="text/javascript">
var inputs = document.getElementsByTagName("input");
for (x = 0 ; x < inputs.length ; x++){
myname = inputs[x].getAttribute("name");
if(myname.indexOf("q1_")==0){
alert(myname);
// do more stuff here
}
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
paj*_*007 13
HTML DOM querySelectorAll()方法似乎适合这里.
语法(如W3School中所示)
document.querySelectorAll(CSS selectors)
Run Code Online (Sandbox Code Playgroud)
所以答案.
document.querySelectorAll("[name^=q1_]")
Run Code Online (Sandbox Code Playgroud)
编辑:
考虑到FLX的建议在这里添加到MDN的链接