querySelector起作用,getElementById不起作用。

3

我正在使用 Polymer 创建一个新的 web 组件。在这个新组件中,当 xhr == 200 时,我使用 JavaScript 动态创建节点和属性。当我创建完所有元素后,我检索一些数据并进行分析。在这个分析过程中,我想获取所有特定 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可以正常工作。有人能解释一下为什么吗?提前感谢!


getElementById 不支持选择器。这就是为什么它不起作用的原因。 - MinusFour
1个回答

4
你的语法有误。
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()只需要输入字符串表示形式,不需要前缀.#

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接