【问题标题】:How to disable or enable href links and change the contents of it?如何禁用或启用 href 链接并更改其内容?
【发布时间】:2020-01-30 21:24:09
【问题描述】:

我的代码中有一个错误要修复

  if (!creatorUrl) {
        creatorUrl = '#';
      }

基本上上面的代码所做的是,它检查创建者是否有一个我可以将用户重定向到的 URL,否则我不想做任何事情。

  <p class="vocab paragraph inherit-colored info__content info__content-creator">
                <a href="creator_url">Creator Name</a>
              </p>

这是我正在修改的标签。我希望预期的行为是这样的,当 creatorUrl 不存在时,链接根本不应该显示,并且创建者名称应该是纯文本。我该怎么做?

【问题讨论】:

  • 如果你想在html里面设置这样的url,你必须重新开始。请发布所有代码

标签: javascript html node.js debugging


【解决方案1】:

在服务器端,不显示链接是一个明显的地方

EJS

<p class="vocab paragraph inherit-colored info__content info__content-creator">
  <% if (creatorUrl) { %>
    <a href="<%= creatorUrl %>">Creator Name</a>
  <% } else { %>
    Creator Name
  <% } %>
</p>

在客户端,您可以这样做以用其 textContent 替换空链接

window.addEventListener("load",function() {
  [...document.querySelectorAll(".info__content-creator a[href^='#']")].forEach(lnk => lnk.parentNode.replaceChild(document.createTextNode(lnk.textContent), lnk));
})
<p class="vocab paragraph inherit-colored info__content info__content-creator">
  <a href="#">Creator Name</a>
</p>

<p class="vocab paragraph inherit-colored info__content info__content-creator">
  <a href="createorpage.html">Creator Name</a>
</p>

【讨论】:

    【解决方案2】:

    var a = document.getElementById('yourlinkId'); //给你的锚标签一个ID或选择你想要的并将它存储在一个变量中。

     if(!creatorUrl){
        a.href = '#';
        }
      else{
      a.href = "somelink url"
     }
    

    【讨论】:

    • 如果没有 href,OP 想要根本没有链接
    • 那是假设我是关于代表的。我有 100K+ 所以不,不是这样。我来自某个地方,试图鼓励人们阅读和回答这个问题。不要感到气馁。只是更加努力。如果您解决了答案,我将删除反对票,如果您对答案进行了足够的改进,我什至会投赞成票。至少使用三元
    • 你的答案可能是a.href = creatorUrl ? creatorUrl : "#",这比你回答的要好一点,这根本不是 OP 所要求的
    猜你喜欢
    • 2020-03-30
    • 2012-05-17
    • 2021-08-15
    • 2018-10-12
    • 2011-07-19
    • 2015-07-14
    • 2011-05-18
    • 2015-07-12
    • 1970-01-01
    相关资源
    最近更新 更多