javascript - querySelector 有效,getElementById 无效

标签 javascript dom xmlhttprequest

我正在使用 Polymer 处理新的网络组件。在这个新组件中,我使用 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/

相关文章:

javascript - 通过 ID 查找 MongoDB 文档

JavaScript 图像替换

php - 无法使用 AFHTTPRequestOperation post 方法将希伯来文文本插入 mysql 数据库

javascript - Javascript 中的 JSON 字符串解析

jquery - 在离开页面之前立即调用 AJAX

javascript - D3强制布局应在单击节点时添加节点和链接

javascript - 如何在参数上使用 .reduce() 而不是特定的数组或对象?

javascript - 如何在 Fluid URI ViewHelper 中使用 Javascript 变量作为参数

javascript - 如何通过遍历DOM获取元素的值

javascript - 为什么 angular {{}} 语法会阻止指令中 attrs.$set 的更改?