首页 > 解决方案 > 如果javascript中的href为空,如何禁用锚标记

问题描述

我有n个锚标签,如果任何锚标签href是“未定义”,那么删除那个特定的a标签href属性..

我尝试了if方法,但它删除了所有锚标记 href。

      (function () {
        if ((readMore.href = "undefined")) {
          readMore.removeAttribute("href");
        }
      })();

这是 href 值的类型,如果它们在 href 中没有值 在此处输入图像描述

标签: javascript

解决方案


如果要检查 href 属性是否具有字符串 "undefined" 的值,请使用==or===作为@Nick Parsons的建议。但也可能是浏览器在干扰,因为如果您尝试使用 Chrome 中的开发人员工具并将 href 属性更改为字符串“未定义”,您实际上会得到"https://stackoverflow.com/undefined"完全不同的字符串。

在此处输入图像描述

如果您检查控制台中的值,您会得到: 在此处输入图像描述

其中 $0 指的是第一个屏幕截图中的元素。

如果您想检查 href 属性是否具有虚假值,例如 undefined、null 或空字符串,您可以编写类似if (!readMore.href).

您提供的代码只会将字符串“未定义”分配给 href 属性,该属性在放入 if 语句时实际评估为 true ,这就是所有项目都发生这种情况的原因。


推荐阅读