2010-02-08 7 views
2

Comment définir une valeur option dans la liste select avec jQuery? J'ai essayé:Définir les options de sélection avec jQuery

$('#SelectGroup :all').replace("tmp4", "abc"); 

Je veux dire: Rechercher chaîne TMP4 et le remplacer par abc. Dans la liste il y a 4 articles que je ne dérange pas d'aller directement à l'entrée # 4.

Je vais étendre ma question: Je veux passer à la fonction qui remplace une valeur de l'extérieur. J'ai essayé:

$('#SelectGroup option').each(function(fieldNum, newVal) { 
     this.text = this.text.replace('tmp4',$(newVal).text()); 
    }); 
}); 

et j'ai essayé:

$('#SelectGroup option').each(newVal, function() { 
     this.text = this.text.replace('tmp4',newVal); 
    }); 
}); 

, mais ici, il dit qu'il ne! dans la première ligne de .each

pourquoi? tu as une réponse?

Je ne comprends pas! Je passe une valeur à une fonction, mais elle perd sa valeur dans la fonction et changer

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

mais newVal est pas ce que je passe à la fonction - il est ce que pour chacun lui donne

Répondre

1

doesen't $ ('option value = ["' + value + '"]') travail?

2

Voulez-vous remplacer dans le texte ou la valeur des options?

var replacement = 'abc'; 

$('#SelectGroup option').each(function() { 
    this.text = this.text.replace('tmp4', replacement); 
    this.value = this.value.replace('tmp4', replacement); 

}); 
0

Il pourrait être plus efficace d'inclure uniquement les options qui contiennent votre chaîne de recherche, afin de réduire le nombre d'itérations (réduisant ainsi le nombre de replace appels):

$('#SelectGroup option[value*=tmp4]').each(function() { 
    $(this).val($(this).val().replace('tmp4', 'abc')); 
}); 

Voir la attribute contains sélecteur.

0

résoudre une autre façon:

$("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); 

    }); 
Questions connexes