2016-01-14 11 views
6

Gibt es eine Möglichkeit, dass ich alle Links auf einmal unter Option-Tag ändern kann?
Beispiel:Ändern Sie alle Links auf einmal

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

.... Und so weiter rund 100 Links.
Jetzt möchte ich den Link ändern website.com bis m.website.com weiterfur Link bleibt gleich. Wie m.website.com/1001, m.website.com/1002

+0

über ein Ereignis oder was? – PHPglue

+0

Verwenden Sie einen Selektor - '$ ('Option')', ['$ .each()'] (http://api.jquery.com/jquery.each/) und '.val *()' – Sean

Antwort

6

versuchen Sie dies:

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

Demo

+1

Danke , funktioniert perfekt :) –

0

Der einfachste Weg, dies zu tun, ist einfach zu finden und ersetzen alle Instanzen http://website.com/ mit http://m.website.com/

Wenn es gibt einige Fälle, die Sie nicht wollen ersetzen Sie einen regulären Ausdruck verwenden können, um den Text zu entsprechen. So etwas wie

Finden

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

und ersetzen mit

$1m.website$3 
0

starten:

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