2016-01-14 4 views
6

Есть ли способ, которым я могу изменить все ссылки сразу под тегом опции?
Для примера:Изменить все ссылки сразу

<select size="1" name="links" onchange="window.location.href=this.value;"> 
<option value=" http://website.com/1001/">Blue</option> 
</select><br> 

<select size="1" name="links" onchange="window.location.href=this.value;"> 
<option value=" http://website.com/2001/">Red</option> 
</select><br> 

<select size="1" name="links" onchange="window.location.href=this.value;"> 
<option value=" http://website.com/3001/">Green</option> 
</select> 

.... И так далее около 100 ссылок.
Теперь я хочу изменить ссылку сайт.com до m.website.com furthur ссылка остается такой же. Как m.website.com/1001, m.website.com/1002

+0

по событию или что? – PHPglue

+0

Используйте селектор - '$ ('option')', ['$ .each()'] (http://api.jquery.com/jquery.each/) и '.val *()' – Sean

ответ

6

попробовать это:

$(function(){ 
    $('select[name="links"] option').each(function(){ 
    var val=$(this).val(); 
    val=val.replace('http://','http://m.'); 
    $(this).val(val); 
    }); 
}); 

Demo

+1

Спасибо , отлично работает :) –

0

Самый простой способ сделать это просто найти и заменить все экземпляры http://website.com/ с http://m.website.com/

Если есть некоторые экземпляры, которые вы не хотите заменять, вы можете использовать регулярное выражение для соответствия тексту. Что-то вроде

Найти

(<option value=" http:\/\/)(website)(\.com\/\d+\/">.*?<\/option>) 

и заменить

$1m.website$3 
0

Попробуйте это:

$(document).ready(function() { 
    $('select[name="links"] option').each(function() { 
    var val = $(this).val(); 
    val = val.replace('website.com', 'm.website.com'); 
    $(this).val(val); 
    }); 
}); 
Смежные вопросы