如何使用jQuery在option
列表中设置select
值?我试过了:
$('#SelectGroup :all').replace("tmp4", "abc");
我的意思是:搜索 tmp4 字符串并将其替换为 abc 。在列表中有4个项目我不介意直接进入#4入口。
我将扩展我的问题:我想传递给从外部替换值的函数。我试过了:
$('#SelectGroup option').each(function(fieldNum, newVal) {
this.text = this.text.replace('tmp4',$(newVal).text());
});
});
我试过了:
$('#SelectGroup option').each(newVal, function() {
this.text = this.text.replace('tmp4',newVal);
});
});
但在这里说它失败了!在.each
为什么呢?你有答案吗?
我不明白!我将一个值传递给一个函数,但它在函数中丢失了它的值并改变了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());
});
});
但是newVal不是我传递给函数的东西 - 它是每个人给它的东西
答案 0 :(得分:2)
您的意思是替换选项的文本或值吗?
var replacement = 'abc';
$('#SelectGroup option').each(function() {
this.text = this.text.replace('tmp4', replacement );
this.value = this.value.replace('tmp4', replacement );
});
答案 1 :(得分:1)
Doesen't $('期权值= [“'+价值+'”]')工作?
答案 2 :(得分:0)
可能可以更有效地仅包含包含搜索字符串的选项,以减少迭代次数(从而减少replace
次调用次数):
$('#SelectGroup option[value*=tmp4]').each(function() {
$(this).val($(this).val().replace('tmp4', 'abc'));
});
请参阅attribute contains选择器。
答案 3 :(得分:0)
以另一种方式解决:
$("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);
});