如何使用jquery在运行时更改所选选项的值?

时间:2011-07-26 20:38:23

标签: jquery select option

我想根据其他输入的值在运行时更改所选选项的值。 恩。当用户在年份输入中输入一个值,并从学期选择元素中选择一个选项时,我想将所选学期的值更改为“年+学期” 我尝试执行以下操作:

$('select#graduationSemester').live("change", function(){
        var year = $('#graduationYear').val();
        var sem =  $(this).val();
        var semStr = $(this).text(sem);
        $("select#graduationSemester option[value='"+sem+"']").remove();  
        sem = year+sem;
        $('select#graduationSemester').append($('<option value = "'+sem+'"/>').text(semStr));
        $('select#graduationSemester').val(sem);

    });

我删除所选选项并使用新值添加新选项。 但是当我运行代码并选择一个select选项时,select元素变为空。为什么?以及它如何运行?

1 个答案:

答案 0 :(得分:1)

var semStr = $(this).text(sem);将清除您的选择。我认为你打算做的是:

var semStr = $(this).find("option:selected").text();

这将解决问题,但您可能需要考虑修改现有选项而不是创建新选项。添加一个新的将把它放在列表的末尾。像这样:

$('select#graduationSemester').live("change", function() {
    var $this = $(this);
    var year = $('#graduationYear').val();
    var sem = $this.val();

    $this.find("option:selected").attr("value",year + sem);
});

http://jsfiddle.net/NWbXt/1