2

如何使用 jQueryoption在列表中设置值?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 不是我传递给函数的 - 它是 for each 给它的

4

4 回答 4

2

您的意思是替换选项的文本或值吗?

var replacement = 'abc';

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

});
于 2010-02-08T13:37:55.060 回答
1

$('option value=["' + value + '"]') 不起作用吗?

于 2010-02-08T13:32:52.137 回答
0

仅包含包含搜索字符串的选项可能更有效,以减少迭代次数(从而减少replace调用次数):

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

查看属性包含选择器。

于 2010-02-08T14:09:35.930 回答
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);

    });
于 2010-02-09T08:41:41.320 回答