0

我不确定是否可能,但如果可能的话,有人知道建议我。

例如:

<a href="image/image.jpg"><img src="image/image.jpg" alt="image"/></a>

在此如何使用 jquery 动态地将 href 路径更改为另一个图像。IE,

<a href="image/img.jpg"><img src="image/image.jpg" alt="image"/></a> like this.

编辑: 如果

<a href="#"><img src="image/image.jpg"/></a>
<a href="http://stackoverflow.com"><img src="image/image.jpg"/></a>
<a href="image/image.jpg"><img src="image/image.jpg"/></a>

href attr只有当 href 链接的锚标记包含图像时,我才能改变这个条件。那么锚文本是应该img标签。

这是 JSFIDDLE: http: //jsfiddle.net/HMsSE/9/ 任何建议将不胜感激。

谢谢,维姬

4

5 回答 5

3

您可以尝试使用该.attr()函数将 href 设置为新值:

$('a[href="image/image.jpg"]').attr('href', 'image/img.jpg');

当然,如果你给锚一个唯一的 id 可能会更容易:

<a href="image/image.jpg" id="myLink"><img src="image/image.jpg" alt="image"/></a>

这样您就可以更轻松地选择它:

$('#myLink').attr('href', 'image/img.jpg');
于 2013-07-04T06:18:23.787 回答
2

只需使用attr功能

$('a').attr('href','image/img.jpg');

您也可以通过 id 更改它,这将更有用

<a id="myLink" href="image/image.jpg"><img src="image/image.jpg" alt="image"/></a>

$('#myLink').attr('href','image/img.jpg');
于 2013-07-04T06:18:40.447 回答
2

您也可以尝试使用.prop()

$('a').prop('href', 'image/img.jpg')

从您的评论中,您正在尝试更改具有子元素的hrefof标记。如果是这样,aimg

if($('a').find('img').length) {  // it return the no. of img tag within a
   $('a').prop('href', 'image/img.jpg');
}
于 2013-07-04T06:20:03.297 回答
2

正如 topicstarter 所要求的,更改在图像点击时执行

$('img').click(function() {
    $(this).parent('a').attr("href","image/img.jpg");
});

如果你也想检查href,你必须使用一个条件

$('a').click(function() {
    event.preventDefault();
    if ($(this).attr('href').search('jpg')!=-1)
        $(this).attr("href","image/img.jpg");
});

另外,我不得不提一下,<img>里面<a>并不总是响应点击

哦,是的,小提琴 UPD我不知道我怎么能忘记过滤器

$('a').click(function() {
    event.preventDefault();
    $(this).filter('[href*=jpg],[href*=png],[href*=gif]').attr("href","image/img.jpg");
});

新的更短的演示

于 2013-07-04T06:51:15.317 回答
0

您也可以在本机 Javascript 中执行此操作,而不包括 jQuery

element.setAttribute(属性名,属性值)

希望这会帮助你。

于 2013-07-04T06:45:58.357 回答