querySelector工作,getElementById没有

时间:2015-11-12 16:16:52

标签: javascript dom xmlhttprequest

我正在使用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确实有效。有人可以解释为什么?先谢谢你!

1 个答案:

答案 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()只接受字符串表示,不需要.#作序言。