jQuery获取更新的选择输入的值

时间:2014-09-22 02:48:22

标签: javascript jquery

我像这样更新选择输入的值:

$('.filter').change(function() {

        $.post('/schedules', { sid: $(this).val() }, function(result) {
            $.each(result, function(k, v) {
                var least = 0;

                if(v.sort_c > least) {
                    $('.filter2').append('<option value="' + v.id + '.' + 'test_value' + '">' + v.name + '</option>');
                    least = v.sort_c;
                }
            });
        });
});

在运行jQuery之后,我需要获得$('.filter2')的值。当我尝试$('.filter2').val()时,它什么都不返回。

为什么会这样?

2 个答案:

答案 0 :(得分:0)

您可能希望在名为filter2的选择内找到所选选项的值。试试这个:

$('.filter2 option:selected').val();

答案 1 :(得分:0)

在此jQuery运行之后 似乎意味着您没有考虑所涉及的异步(AJAX)请求。以下内容应为您提供.filter2的正确值:

$('.filter').change(function() {

        $.post('/schedules', { sid: $(this).val() }, function(result) {
            $.each(result, function(k, v) {
                var least = 0;

                if(v.sort_c > least) {
                    $('.filter2').append('<option value="' + v.id + '.' + 'test_value' + '">' + v.name + '</option>');
                    least = v.sort_c;
                }
            });
            console.log( $('.filter2').val() ); //<========
        });
});

但是,由于我没有看到您使用selected属性设置任何 new 选项,我想知道您希望在更改之前获得的价值是多少