运行代码时出现错误,但它确实按预期删除了元素。
我尝试使用 querySelectorAll 但这给了我“slet.style 未定义”
if (document.URL.indexOf("/catalog/categories/departments/") > -1) {
var allProducts = document.getElementsByClassName("threeColumn product");
for (var i = 0; i < allProducts.length; i++) {
var slet = document.getElementsByTagName("mark")[i];
slet.style.display = "none";
console.log("This is here now");
}
}
我希望代码不在 URL 中包含/catalog/categories/departments/的所有页面上显示名为 mark 的元素。 它确实显示:无,但我收到一条错误消息:
"TypeError: slet is undefined" But I think I already defined it in the "slet" var?
最佳答案
如果 document.getElementsByTagName()
返回空 HTMLCollection
,则 document.getElementsByTagName()[i]
返回 undefined
,所以 slet
是 未定义
。这并不意味着您的变量slet
不存在 - 这会引发ReferenceError
-但它的值是特殊的未定义
对象。
关于javascript - 我正在寻找出现 TypeError : x is undefined 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54126454/