【问题标题】:Set select options with jQuery使用 jQuery 设置选择选项
【发布时间】:2011-01-14 09:04:13
【问题描述】:

如何使用 jQuery 在select 列表中设置option 值?我试过了:

$('#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 给它的

【问题讨论】:

    标签: jquery select options


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

        查看attribute contains 选择器。

        【讨论】:

          【解决方案4】:

          用另一种方式解决:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-12-29
            • 1970-01-01
            • 2011-10-27
            • 2012-12-04
            • 2014-11-20
            • 2011-04-03
            • 1970-01-01
            • 2012-07-07
            相关资源
            最近更新 更多