首页 > 解决方案 > 如果锚点名称是 CONTACT,请在点击时打开此 url

问题描述

我有菜单:

<ul id="main-menu">
    <li><a href="https://myplace.com/products/">Products</a></li>
    <li><a href="https://myplace.com/services/">Services</a></li>
    <li><a href="https://myplace.com/contact/">Contact</a></li>
</ul>

我想将锚名称联系人重定向到 othersite.com

标签: javascriptjquery

解决方案


正如您在评论中提到您需要使用 JS 来编辑href并且您无法修改 HTML,您可以这样做:

var oldhref = "https://myplace.com/contact/"
var newhref = "https://othersite.com/"

$(document).ready(function() {
  $("[href='" + oldhref + "']").prop("href", newhref)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="main-menu">
  <li><a href="https://myplace.com/products/">Products</a></li>
  <li><a href="https://myplace.com/services/">Services</a></li>
  <li><a href="https://myplace.com/contact/">Contact</a></li>
</ul>

这将a根据它找到元素href并在不修改 HTML 的情况下替换它。

基于链接文本而不是它的选择的版本href

var linkText = "Contact"
var newhref = "https://othersite.com/"

$(document).ready(function() {
  $("a:contains('" + linkText + "')").filter(function(i) {
    return $(this).text() === linkText
  }).prop("href", newhref).attr("target", "_blank")
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul id="main-menu">
  <li><a href="https://myplace.com/products/">Products</a></li>
  <li><a href="https://myplace.com/services/">Services</a></li>
  <li><a href="https://myplace.com/contact/">Contact</a></li>
</ul>


推荐阅读