如何通过javascript或jquery更改href? [复制]

Posted

技术标签:

【中文标题】如何通过javascript或jquery更改href? [复制]【英文标题】:How to change the href through javascript or jquery? [duplicate] 【发布时间】:2017-05-05 20:31:35 【问题描述】:
<div id="div-id"><ul><li><a target="_blank" href="www.google.com">google</a> </li></ul></div>

如何通过javascript(不是通过getElementById,因为它在html中没有提到)或jquery更改href?

【问题讨论】:

你有什么代码?你已经测试了什么? 请阅读How to Ask。关键词:“搜索和研究”和“解释......任何阻碍你自己解决的困难”。 你说的“不是通过getElementById,因为它没有在html中提到”是什么意思getElementById 是 JavaScript。 您可以尝试$('ul li a').attr('href', 'www.***.com'),但请注意,如果页面上有多个 ul > li > a 订单,这将不起作用。 【参考方案1】:

$("body").ready(function() 
  $("ul li a").attr("href", "http://www.***.com/")
)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul> <li> <a target="_blank" href="www.google.com">google</a> </li> </ul>

这是一种简单的方法,但现在它适用于所有 Links,因为您没有选择器(类或 id)

【讨论】:

【参考方案2】:

更准确地说,使其仅适用于特定的锚元素

$("body").ready(function() 
  $("ul >li >a:contains("google").attr("href", "http://www.***.com/")
)

【讨论】:

【参考方案3】:

document.getElementById() 不是在文档中查找元素的唯一方法。你可以使用相当健壮的选择器,比如document.querySelector()。举个极其简单的例子:

<ul>
  <li>
    <a target="_blank" href="www.google.com">google</a>
  </li>
</ul>

<script type="text/javascript">
  var element = document.querySelector('a');
  element.href = 'http://example.com';
</script>

由于在给定的标记中,目标链接是 DOM 中的 only a 元素,简单的选择器 'a' 将识别它。在更复杂的文档中,您可以使用更复杂的选择器。例如:

document.querySelector('ul > li > a')

甚至:

document.querySelector('a[href="www.google.com"]')

由于您还使用 jQuery 标记了问题,因此您也可以在此处使用相同的选择器概念。比如:

$('a').attr('href', 'http://example.com');

或:

$('a[href="www.google.com"]').attr('href', 'http://example.com');

【讨论】:

以上是关于如何通过javascript或jquery更改href? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 或 jQuery 更改数组内的对象的值?

JQuery 插件,Javascript - 如何仅为 JQuery 插件全局变量或 json 对象创建并在函数级别更改此(变量、对象)

如何在没有 CSS 且仅使用 JavaScript 或 jQuery/jQueryMobile 的情况下更改设备方向?

在将按钮添加到 jQuery UI 对话框时,如何防止有人更改或避免我的 JavaScript 逻辑?

Jquery 或 Javascript mvc

如何通过 javascript 或 jquery 读取巨大的文本文件?