2016-01-14 12 views
6

Esiste un modo per modificare tutti i collegamenti contemporaneamente con il tag dell'opzione?
Per esempio:Cambia tutti i collegamenti contemporaneamente

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

.... E così via circa 100 collegamenti.
Ora desidero modificare il collegamento website.com a m.website.com collegamento furthur rimane uguale. Come m.website.com/1001, m.website.com/1002

+0

su un evento o cosa? – PHPglue

+0

Usa un selettore - '$ ('opzione')', ['$ .each()'] (http://api.jquery.com/jquery.each/), e '.val *()' – Sean

risposta

6

provare questo:

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

Demo

+1

Grazie , funziona perfettamente :) –

0

Il modo più semplice per farlo è trovare solo e sostituire tutte le istanze di http://website.com/ con http://m.website.com/

Se ci sono alcune istanze che non si desidera sostituire, è possibile utilizzare una regex per abbinare il testo. Qualcosa di simile

Trova

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

e sostituirlo con

$1m.website$3 
0

Prova questo:

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