2011-09-20 13 views
0

我有2個索引頁,每個鏈接150個鏈接。我寧願維護1頁,只是基於變量值動態生成鏈接。例如,創建一個鏈接列表。鏈接1,鏈接2,鏈接3 ...和基於一個變量值爲'真'替換那些鏈接與替代鏈接列表即altlink1,altlink2,altlink3 ...重寫數組中的鏈接

我已經想出瞭如何做到這一次,而是比寫每個鏈接反覆寫相同的代碼,我想知道如果有更快的方式。就像創建一個列表「a」和相應的列表「b」或類似的東西。我在下面列出了我目前的代碼,我期待您的建議。

<script type="text/javascript">   
// link rewriter   
var hostadd = location.host; 
var vendor = '999.99.999.99'; 
var localaccess = 'somesite.com'; 

    $(document).ready (
    function link_switcher(){ 
    //if not a vendor route to alternate website 
    if (hostadd != vendor) { $("a[href= 'https://www.somelink1.com']").attr ('href', 'https://www.alternatelink1.com') } 
}); 
</script> 

是否有可能創建一個數組,然後javascript會說在數組a中用alternatelink1替換link1?

+0

你可以發佈一個鏈接到示例頁面嗎? – Bojangles

+0

你想在鏈接中改變什麼?只是域? – jfriend00

+0

你想要做什麼並不是很清楚,請嘗試重新說明你的問題。 – Alex

回答

2

它仍然是不完全清楚你想要做什麼,但如果你想重寫基於查找表,告訴你轉換成什麼什麼的鏈接,這裏是你如何能做到這一點的所有鏈接:

// Table of links. 
// Key is original page source URL 
// Data is link to change it to 
var linkData = { 
    "http://www.google.com": "http://www.bing.com/", 
    "http://mail.google.com/mail/?shva=1#inbox": "http://www.hotmail.com"  
}; 

// find every link in the page and change it if it's value is found in the linkData table 
$("a").each(function() { 
    var link = this.getAttribute("href"); // use getAttribute to get what was actually in the page, perhaps not fully qualified 
    if (linkData[link]) { 
     this.href = linkData[link]; 
    } 
}); 

如果表中找不到鏈接,則不會修改鏈接。如果修改有某種模式,則可以編寫該模式並且不必列出表中的每個鏈接,但是您沒有共享關於模式的任何信息。

而且,一個工作jsFiddle的例子:http://jsfiddle.net/jfriend00/Cvj8C/

+0

完美地工作! – mpriney

+0

@mpriney - 因爲你是Stack Overflow的新手,你是否意識到如果它能夠幫助你,你會選擇一個答案(點擊它左邊的向上箭頭),並最終選擇一個你認爲是的答案這對你最有幫助(點擊答案左邊的複選標記)?這爲那些幫助你的人提供了聲望點。 – jfriend00

+0

我沒有意識到這一點!非常感謝您的幫助,作爲一個noob很難,所以我很感激幫助! – mpriney