2011-07-20 153 views
0

我一直沒能在.split()上找到很多文檔,並且我有一些代碼可以在單擊兩個單獨按鈕時更改圖像的來源以及圖像的目標文件夾。一個按鈕用於更改源文件夾,另一個用於更改實際的jpeg名稱。jQuery .split()在最後一個斜槓後?

我有腳本工作正常,但現在它是實時的,它是多個文件夾深,當我點擊更改文件夾,默認圖像隱藏/不顯示實際jpg後最後/直到我點擊其他按鈕。 jquery的我有如下:。

$(document).ready(function(){ 
    siteUrl = 'http://webdev.timberwindows.com/wp-content/themes/TimberWindows/images/window-planner/'; 
    imgFldr = 'period-black'; 

    //on hovering the 21 or 24 colour options, change the colour of the image but not the folder 
    $('#black').click(function(){ 
     $("#pic").attr("src",siteUrl+imgFldr+"/black.jpg"); 
    }); 

    //click the hardware buttons and change the folder where the images are coming from, but not the image itself (by name) 
    $('#standardBlack').click(function(){ 
     $("#pic").attr("src",'standard-black/'+$("#pic").attr("src").split('/')[1]); 
     imgFldr = 'standard-black'; 
    }); 
     $("#ironmongery li").click(function(){ 
     $('#ironmongery>li').removeClass('selected'); 
     $(this).addClass('selected'); 
    }); 
     $("#colours li").click(function(){ 
     $('#colours>li').removeClass('selected'); 
     $(this).addClass('selected'); 
    }); 
}); 
+0

您的代碼看起來不錯。你可以發佈標記的一部分嗎? – ShankarSangoli

+0

是的,這裏你去:http://pastebin.me/74fc57b4f094813151564c8ca00a558c注意:這是一個wordpress模板文件。 – tjcss

+3

良好做法 - 多次使用局部變量而不是調用「#pic」。 –

回答

0

$( 「#PIC」)ATTR( 「SRC」)分割( '/')[1]會給你從分裂陣列,而只有所述第二元件你所需要的所有元素分裂預計第一。當你想最後一個斜線後僅部分請試試這個

$('#standardBlack').click(function(){ 
     var imgSrc = $("#pic").attr("src"); 
     imgSrc = 'standard-black' + imgSrc.substring(imgSrc.indexOf('/')); 
     $("#pic").attr("src", imgSrc); 
     imgFldr = 'standard-black'; 
    }); 

    $('#standardChrome').click(function(){ 
     var imgSrc = $("#pic").attr("src"); 
     imgSrc = 'standard-chrome' + imgSrc.substring(imgSrc.indexOf('/')); 
     $("#pic").attr("src", imgSrc); 
     imgFldr = 'standard-chrome'; 
    }); 
+0

嗨ShankarSangoli,這給了我一個像這樣的img源代碼: tjcss

+0

當你連接文件夾和圖像源的一部分時,不要放「/」。看看這個[imgSrc ='standard-black'+ imgSrc.substring(imgSrc.indexOf('/'));]'standar-black'中沒有「/」。 – ShankarSangoli

+0

我不確定我是否理解你,我完全使用過你的代碼示例,我做錯了什麼? – tjcss

1

: 檢查下面的代碼:

var t="http://test.test.com/test/test.php"; 
console.log(t.replace(/^.+\/([^\/]*)$/,'$1')); 
+0

拆分和替換的文檔是regexp的文檔 –

+0

Crikey,謝謝eicto,但我根本不懂正則表達式! (假設這是一個正則表達式?) 如何使用此代碼使用我之前的示例和我的代碼庫代碼? – tjcss

+0

'function lastslash(t) { return t.replace(/^.+\/([^\/]*)$/,'$ 1'); }' –

相關問題