我正在使用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
确实有效。有人可以解释为什么?提前谢谢! 最佳答案
您的语法错误。
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()
仅采用字符串表示形式,不需要.
或#
作为开头。关于javascript - querySelector有效,getElementById不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33676156/