javascript - 如何禁用或启用 href 链接并更改其内容?
问题描述
我的代码中有一个错误要修复
if (!creatorUrl) {
creatorUrl = '#';
}
基本上上面的代码所做的是,它检查创建者是否有一个我可以将用户重定向到的 URL,否则我不想做任何事情。
<p class="vocab paragraph inherit-colored info__content info__content-creator">
<a href="creator_url">Creator Name</a>
</p>
这是我正在修改的标签。我希望预期的行为就像,当 creatorUrl 不存在时,链接根本不应该出现,并且创建者名称应该是纯文本。我该怎么做?
解决方案
在服务器端,不显示链接将是一个明显的地方
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>
推荐阅读
- embedded-jetty - Embedded Jetty 无法获取我的资源文件
- ruby-on-rails - 如何管理 Graylog 以正确解析我的 JSON 日志?
- php - 为什么这个 foreach 循环迭代两次?
- docker - 如何更新码头夏令时时间表
- python - 错误:inspector_emulator_agent.cc(477) 在通过 Selenium 和 ChromeDriver 执行测试时,只能为页面启用虚拟时间,而不是工作人员
- regex - 忽略 RegEx 中的不可见字符
- c# - 如何使部分方法异步
- python - 在 django 中同时更新模型并创建 pdf
- python - 在 pandas 中创建公司周数和年份
- istio - Istio helm 配置 - istio-ingressgateway 端口配置不起作用(或有意义)