2009-08-25 40 views
2

我目前正在嘗試使用Jquery更改DIV內鏈接的href屬性,以便將URL從file.html更改爲file.jpg ...使用JQuery和正則表達式來改變HREF的一部分

<div class="gallery"> 
<a href="file.html">My File</a> 

,我想將其更改爲

<div class="gallery"> 
<a href="file.jpg">My File</a> 

我所見過的post有關使用jQuery和明白了一些改變href屬性,但我在有關如何更改各個環節完全喪失結束.html內的div到.jpg。文件名不需要改變。任何人都可以指出我在正確的方向尋求幫助嗎?

回答

1

只需提取其href匹配模式的元素的現有hrefs,然後使用字符串替換來獲取新的href並將其設置。

$('a[href$=.html]').each(function() { 
    var $this = $(this); 
    var href = $this.attr('href').replace(/\.html/,'.jpg'); 
    $this.attr('href', href); 
}); 
1
var href=$(".gallery a").attr("href"); 
href=href.replace(/\.html$/,".jpg"); 
$(".gallery a").attr("href",href); 
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")); 
}); 

首先將選擇每個adiv內,並嘗試使用正則表達式與.jpg在年底更換.html。第二個將只選擇那些href值以.html結尾,並將使用簡單的字符串操作替換爲.jpg

0

我沒有測試過,但我認爲這應該這樣做:

$('a', '.gallery').each(function(){ 
    $(this).attr('href', $(this).attr('href').replace(/\.html$/, '.jpg')); 
}); 
+0

謝謝大家!神奇的幫助! – Jordan 2009-08-25 20:31:22

相關問題