我目前正在尝试使用Jquery来更改DIV中链接的href属性,以便将URL从file.html更改为file.jpg ...
<div class="gallery">
<a href="file.html">My File</a>
我希望将其更改为
<div class="gallery">
<a href="file.jpg">My File</a>
我已经看到post关于使用Jquery更改href属性并了解其中的一些内容,但我完全不知道如何将div中结束.html的所有链接更改为.jpg。文件名不需要更改。有人能指出我正确的方向寻求帮助吗?
答案 0 :(得分:4)
尝试以下方法之一:
$("div.gallery a").each(function() {
this.setAttribute("href", this.getAttribute("href").replace(/\.html$/, ".jpg"));
});
$("div.gallery a[href$=.html]").each(function() {
var href = this.getAttribute("href");
this.setAttribute("href", href.substr(0, href.length-6) + ".jpg"));
});
第一个会选择a
中的每个div
,并尝试使用正则表达式替换最后.html
.jpg
。第二个只会选择href
值以.html
结尾的值,并使用简单的字符串操作将其替换为.jpg
。
答案 1 :(得分:1)
只需为href与您的模式匹配的元素提取现有的href,然后使用字符串替换来获取新的href并进行设置。
$('a[href$=.html]').each( function() {
var $this = $(this);
var href = $this.attr('href').replace(/\.html/,'.jpg');
$this.attr('href', href );
});
答案 2 :(得分:1)
var href=$(".gallery a").attr("href");
href=href.replace(/\.html$/,".jpg");
$(".gallery a").attr("href",href);
答案 3 :(得分:0)
我没有测试过,但我认为应该这样做:
$('a', '.gallery').each(function(){
$(this).attr('href', $(this).attr('href').replace(/\.html$/, '.jpg'));
});