2011-09-20 2 views
0

У меня есть 2 индексных страницы с ок. 150 ссылок на каждый. Я предпочел бы поддерживать 1 страницу и просто генерировать ссылки динамически на основе значения переменной. Например, создайте список ссылок. link1, link2, link3 ... и на основе значения переменной «true» заменить те ссылки со списком альтернативных ссылок, то есть 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> 

возможно создать массив, а затем яваскрипт, который сказал бы заменить LINK1 в массиве а с alternatelink1 в массиве Ь?

+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 - как вы новичок в переполнении стека, понимаете ли вы, что вы должны проголосовать за ответ, если он вам поможет (щелкните стрелку вверх слева от него) и, в конце концов, выберите тот, который вы считаете одним что помогло вам больше всего (нажмите галочку слева от ответа)? Это дает репутацию тем, кто помогал вам. – jfriend00

+0

Я не знал об этом! Большое спасибо за вашу помощь, трудно быть нобом, поэтому я ценю помощь! – mpriney

Смежные вопросы