Impostare le opzioni selezionate con jQuery
Domanda
Come faccio a impostare un valore option
in lista select
con jQuery? Ho provato:
$('#SelectGroup :all').replace("tmp4", "abc");
Voglio dire: la ricerca di TMP4 stringa e sostituirla con abc . Nella lista ci sono 4 articoli Non mi importa di andare direttamente all'ingresso # 4.
io dirigerò la mia domanda: voglio passare alla funzione che sostituisce un valore al di fuori. Ho provato:
$('#SelectGroup option').each(function(fieldNum, newVal) {
this.text = this.text.replace('tmp4',$(newVal).text());
});
});
e ho provato:
$('#SelectGroup option').each(newVal, function() {
this.text = this.text.replace('tmp4',newVal);
});
});
ma qui si dice che non riesce! nella prima riga del .each
Perché? do u hanno una risposta?
Non capisco! Passo un valore a una funzione, ma perde il suo valore nella funzione e il cambiamento
var newVal= $(this).val();
$('#SelectGroup option').each(function(fieldNum, newVal) {
alert("final option text is:" + $(this).text());*/
alert($(newVal).text());
this.text = this.text.replace('tmp4',$(newVal).text());
});
});
ma newVal non è quello che mi passa per la funzione - che è ciò che il per ogni conferisce
Soluzione
doesen't $ ( 'option value = [ "' + Valore + '"]') lavoro?
Altri suggerimenti
Vuoi dire di sostituire nel testo o il valore delle opzioni?
var replacement = 'abc';
$('#SelectGroup option').each(function() {
this.text = this.text.replace('tmp4', replacement );
this.value = this.value.replace('tmp4', replacement );
});
potrebbe essere più efficiente per includere solo le opzioni che contengono la stringa di ricerca, per ridurre il numero di iterazioni (riducendo così il numero di chiamate replace
):
$('#SelectGroup option[value*=tmp4]').each(function() {
$(this).val($(this).val().replace('tmp4', 'abc'));
});
Vedere l'attributo contiene selettore.
risolvere in un altro modo:
$("input[name*=RELATIVE_symbol]").live("focusout", function(){
var fieldNum = $(this).attr('id').replace("RELATIVE_symbol_","");
var newVal= $(this).val();
var a = $("#SelectGroup option[value='"+fieldNum+"']").attr('text').replace('tmp'+ fieldNum,newVal);
$("#SelectGroup option[value='"+fieldNum+"']").text(a);
});