2014-07-18 53 views
-1

我需要在按鈕單擊時獲取img src,並且只將第一個和第二個正斜槓之間的值從「galleryhomelarge」更改爲「testtext」。jquery更改正斜槓之間的img src中的字符串

的js撥弄鏈路:quick setup of my scenario

jQuery代碼:'$(函數(){ VAR圖像= 「」; VAR imageSrc = 「」; VAR imageCaption = 「」; VAR newImageCon = 「」 ; VAR newImageSrc = 「」;

$('#button').click(function() { 
    image = $('#demoimg'); 
    imageSrc = image.attr('src'); 
    imageCaption = image.attr('alt'); 
    newImageCon = $('#newimg-con'); 
    newImageCon.html("Old Image Source: " + imageSrc + "<br />Image Caption: " + imageCaption + "<br />New Image Source: " + newImageSrc); 
}); 

}); ` 感謝,

伊恩

回答

2

你可以簡單地做:

var src = $("img").attr("src"); 
src.replace("/galleryhomelarge/", "/testtext/"); 
$("img").attr("src", src); 

我想象你的鏈接圖像是一致的,有galleryhomelarge在第一個和第二個斜槓之間的位置之外的概率不是很高。

+0

哇,這很簡單!甚至更多的語義可以理解。我認爲格雷格使用前後斜線來逃避現有的任何符號或空間。是的,你是對的,鏈接永遠是一致的,我可以放心地使用你的代碼 – hihaho67

+0

如果目錄名稱改變了,怎麼辦?你將不得不回來改變這個來源。我認爲正則表達式是在這種情況下走的路。 –

1

我覺得你想這樣的:

$('img').each(
function(){ 
    var src = $(this).attr('src'); 
    if (src.indexOf('/') === 0){ 
     this.src = src.replace('/',''); 
    } 
}); 
+0

這停在第一個正斜槓處並僅替換它。它有幫助,但是從這一點直到下一個正斜槓,一直在尋找替換字符串。 – hihaho67

1

newImageSrc = imageSrc.replace(/(.*?)\/(.*?)\/(.*?)/, '$1/testtext/$3');

+0

工作夥伴!謝謝!我發現很難理解前後向斜線模式和點星號問題在javascript行中的含義..以及$ 1和$ 3 – hihaho67

+0

它被稱爲反向引用,請查看http://stackoverflow.com/。問題/ 3235763/javascript-replace-method-replace-with-1 第一個和最後一個正斜槓是reg ex的開始末尾,中間的斜槓需要用反斜槓轉義以使其正常工作。括號告訴正則表達式來捕獲這些字符串。後面的引用($ 1等)通過索引引用捕獲的組。 –