如何获取名称以某些字符串开头的所有元素?

Mis*_*hko 40 html javascript

我有一个HTML页面.我想提取名称以"q1_"开头的所有元素.

我怎样才能在JavaScript中实现这一目标?

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)

  • 没有jQuery的东西? (9认同)
  • Varun,在karim79的答案中剪辑的第二个代码是普通的javascript,他没有使用jQuery. (2认同)

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链接

语法(如W3School中所示)

document.querySelectorAll(CSS selectors)
Run Code Online (Sandbox Code Playgroud)

所以答案.

document.querySelectorAll("[name^=q1_]")
Run Code Online (Sandbox Code Playgroud)

小提琴

编辑:

考虑到FLX的建议在这里添加到MDN的链接