我有几个span元素,它们以相同的ID开头,如下所示......
<span id="graph_machine"
<span id="graph_human"
<span id="graph_custom"
我想在我的Javascript函数中将这3个Span元素作为数组访问..
var elems = document.getElementsById(“graph *”);
但getElementsById不支持返回多个值。有什么建议?也许使用不同的函数和一些通配符?
感谢。
答案 0 :(得分:9)
var elems = document.querySelectorAll("[id^=graph]");
这将返回任何具有id
属性的元素的节点列表,其值以“graph”开头。
答案 1 :(得分:0)
您可以获得所有跨度,然后单独检查每个ID:
var spans = document.getElementsByTagName("span");
var graphSpans = [];
for (var i = 0; i < spans.length; i++) {
if (spans[i].id.substring(0,5) === "graph") {
graphSpans.push(spans[i]);
}
}
答案 2 :(得分:0)
尝试获取所有跨度ID,然后检查跨度ID是否以“graph”
开头var spans = document.getElementsByTagName("span");
var graphSpans = new Array();
for (var i = 0; i <= spans.length; i++) {
if (spans.id.startsWith("graph")) {
graphSpans.push(spans[i]);
}
}
由于startWith方法在Javascript中不可用,因此您需要在文档准备就绪后将其添加到原型中。
jQuery(document).ready(function() {
if (typeof String.prototype.startsWith != 'function') {
// see below for better implementation!
String.prototype.startsWith = function (str){
return this.indexOf(str) == 0;
};
}
}
答案 3 :(得分:0)
如果您使用的是jQuery,可以使用$( "span[id^='graph_']" )
答案 4 :(得分:-2)
使用jquery
尝试此操作$("span").each(function(){
console.log($(this).attr('id'));
});