使用jQuery设置选择选项

时间:2010-02-08 13:30:20

标签: jquery select options

如何使用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不是我传递给函数的东西 - 它是每个人给它的东西

4 个答案:

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

    });