我有一个HTML页面。我想提取名称以"q1_“开头的所有元素。
如何在JavaScript中实现这一点?
发布于 2010-04-11 15:18:19
一种快速而简单的方法是使用jQuery并执行以下操作:
var $eles = $(":input[name^='q1_']").css("color","yellow");
这将获取name属性以'q1_‘开头的所有元素。若要将jQuery对象的结果集合转换为DOM集合,请执行以下操作:
var DOMeles = $eles.get();
请参阅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]);
}
}
发布于 2010-04-11 15:56:17
您可以使用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>
https://stackoverflow.com/questions/2617480
复制