我正在寻找为什么我收到TypeError:x的原因

时间:2019-01-10 10:19:03

标签: javascript typeerror

运行代码时出现错误,但是确实删除了预期的元素。

我尝试使用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?  

1 个答案:

答案 0 :(得分:1)

如果document.getElementsByTagName()返回空的HTMLCollection,则document.getElementsByTagName()[i]返回undefined,因此sletundefined。这并不意味着您的变量slet不存在-这会引发ReferenceError-而是 value 是特殊的undefined对象。