我正在使用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/

10-12 13:14