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

È stato utile?

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

    });
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top