如何使用Javascript替换特定的href链接?

时间:2015-06-30 03:47:02

标签: javascript html replace href

我会再次尝试这个,因为我不确定上次我提出一个非常明确的问题...我有一个页面有很多链接图像。我想使用javascript更改其中一个图片链接(它是徽标)。我无法直接编辑" body" html,但可以把js放在" head"区域。

这是html代码:

<div id="ctl00">
  <h1 class="logo">
  <a href="http://www.store.domain.co.nz" title="Menswear"><img src="/user/files/logo.png title="Menswear" alt="Menswear"></a>
  </h1>
</div>

我想将html更改为:

<div id="ctl00">
    <h1 class="logo">
<a href="http://www.domain.co.nz" title="Menswear"><img src="/user/files/logo.png title="Menswear" alt="Menswear"></a>
</h1>
</div>

基本上我想删除&#34; .store&#34;来自URL,但只有这个实例,而不是页面上的所有URL。

2 个答案:

答案 0 :(得分:4)

一种方法是使用href值来找到锚

var a = document.querySelector('a[href="http://www.this.link.co.nz"]');
if (a) {
  a.setAttribute('href', 'http://www.that.link.co.nz')
}
<a href="http://www.this.link.co.nz" title="this link">
  <img src="/filename.jpg" />
</a>

答案 1 :(得分:3)

检查DOM功能:

&#13;
&#13;
var x = document.getElementsByTagName("a")
for (i=0;i<x.length;++i) {
  if (x[i].getAttribute("href") == "http://www.this.link.co.nz") {
    x[i].setAttribute("href", "http://www.that.link.co.nz")
    x[i].setAttribute("title", "that link")
    x[i].replaceChild(
      document.createTextNode(
        "changed img:filename.jpg"
      ),
      x[i].firstChild
    )
  }
}
&#13;
<p><a href="http://www.this.link.co.nz" title="this link">
    img:filename.jpg
</a>
</p>
<p><a href="http://www.this.link.co.nz" title="this link">
    img:filename.jpg
</a>
</p>
&#13;
&#13;
&#13;

x设置为包含所有 a 元素的数组。