2011-05-19 39 views
2

我從我的網站的不同頁面加載內容到結果容器(div類)。試圖將鏈接/ href路徑追加到原始代碼

$('.result-container').load('../path/otherpage.html #ID'); 

到目前爲止這麼好,工程。 現在,我需要在點擊結果容器時更新任何鏈接。原因在於,它們的所有鏈接仍然指向它們的原始位置(從它們的加載位置)。

這個想法是,當點擊一個鏈接時,我得到了href屬性。如果它以「files /」開始,而不是相對於原始頁面的鏈接(如果它以其他內容開始,則鏈接到其他地方並且可以)。所以,我需要添加到(只需單擊)href「../path/」的前面,使最終的href路徑看起來像「../ path/files/etc ....」。 我有一些工作,但真的很難拼湊在一起....任何人都可以幫助我嗎? 謝謝! M.

$(function() { 
    $(".result-container").live("click", //on click on element 
        function() { 
        $.get($(this).attr("href"), //get the href attribute            
           if ($('a[href^="files/"]')) //if attribute starts with "files/" 
           {function() { 
           var href = $(this).attr('href'); //get the attribute content - guess I could have done that above? 
           $(this).attr('href', '../start/path/' + href); //append the start path to original path 
              }; 
           } 
          )}; 
          )}; 

優秀的,謝謝!!!!! 現在我加載從不同的頁面元素在我的網站有:

$('.result-container').load(../path/conetent.html #unique-ID); //load conent from different page on my site 

上點擊,它改變了每一個與「文件/」到「../path/files/」開頭的元素:

$(function() { 
    $(".result-container").live("click", 
        function() { 
         $('.result-container').html(); 
         var test = $('.result-container').html().replace(/"files\//gi, '"../path/files/'); 
         $('.result-container').html(test);      
          }); }); 

這是行得通的。這會更改原始內容,並在.result-container中進行主動點擊後顯示已更改的內容。 現在我正在嘗試刪除.live(「click」,這裏的觸發器(這個觸發器只在那裏,因爲我的初始方法是不同的),但是當我刪除「click」時,這個腳本不會改變文本自動...任何想法如何執行並顯示更改後的內容後,我從獨特的ID容器中加載內容?

+0

點擊Ø一個鏈接,我得到的HREF屬性...你是否修改.result容器內的鏈接的屬性?如果是這樣,你的選擇器有點不對......'$('。result-container')。live('click',function(){$('。result-container a [href^=「files」]') .each()'...是一個更合適的選擇器。 – bleepzter 2011-05-19 21:05:57

回答

1

如何更換任何字符串「files/with」/路徑/。因此,像

var new_text = $('#my_div').html().replace(/"files\//gi, '"/path/'); 
$('#my_div').html(new_text); 

你得原諒我,如果我正則表達式是有點過,但應該給你一個想法。

+0

非常感謝你!!!得到了這個工作(請參閱我編輯的問題)。但是,如何在加載內容後自動完成此更改,而不只是在我點擊後?任何想法 – Wanni 2011-05-22 11:52:53

+0

這個內容是如何加載的?我的猜測是通過ajax調用。如果是這樣,你可以把所有這些都放到調用的成功函數中。 – 2011-05-23 15:34:01

+0

內容被加載$ (.target).load(path/path)。我描述瞭如何在我的帖子中包含你的代碼的完整方式,並且我無法將它變成一個單一的函數.... :(很傷心! – Wanni 2011-05-23 21:21:43