我正在使用Polymer处理新的Web组件。在这个新组件中,我使用javascript,在xhr == 200时创建节点和属性。当我创建所有元素时,我检索一些数据并进行分析。 在此分析中,我希望获得具有特定id的所有节点,如下所示:
var selection = document.querySelectorAll("#container > div");
for(var i = 0; i < selection.length; i++){
var data1 = document.getElementById("span#vth" + selection[i].id);
var data2 = document.querySelector("span#vta" + selection[i].id);
console.log("data1 with id " + selection[i].id + ": " + data1);
console.log("data2 with id " + selection[i].id + ": " + data2.innerHTML);
}
如果document.getElementById
不起作用,则返回null。 document.querySelector
确实有效。有人可以解释为什么?先谢谢你!
答案 0 :(得分:3)
你的语法错了。
var data1 = document.getElementById("span#vth" + selection[i].id);
应该是
var data1 = document.getElementById('vth'+selection[i].id);
ID应该只使用一次,因此不需要元素特异性,并且您不会包含散列#
,因为它不是ID名称的一部分。
document.querySelector()
和document.querySelectorAll()
的功能与jQuery选择器引擎类似,但getElementById()
和getElementByClassName()
只接受字符串表示,不需要.
或#
作序言。