2016-01-14 14 views
6

Czy jest jakiś sposób, że mogę zmienić wszystkie linki jednocześnie pod znacznikiem opcji?
Dla przykładu:Zmiana wszystkich linków na raz

<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> 

.... I tak na około 100 linków.
Teraz chcę zmienić link website.com na m.website.com furthur link pozostaje taka sama. Jak m.website.com/1001, m.website.com/1002

+0

od zdarzenia, czy co? – PHPglue

+0

Użyj selektora - '$ ('option')', ['$ .each()'] (http://api.jquery.com/jquery.each/) i '.val *()' – Sean

Odpowiedz

6

spróbuj tego:

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

Demo

+1

Dzięki działa idealnie :) –

0

Najbardziej Najprostszym sposobem, aby to zrobić, to znaleźć i zastąpić wszystkie wystąpienia http://website.com/ z http://m.website.com/

Jeśli istnieją przypadki, których nie chcesz zastąpić, możesz użyć wyrażenia regularnego, aby dopasować tekst. Coś jak

Znajdź

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

i zastąpić

$1m.website$3 
0

Spróbuj:

$(document).ready(function() { 
    $('select[name="links"] option').each(function() { 
    var val = $(this).val(); 
    val = val.replace('website.com', 'm.website.com'); 
    $(this).val(val); 
    }); 
}); 
Powiązane problemy