为什么我无法获得<select>字段的正确值?

Lee*_*eem 0 javascript jquery javascript-framework jquery-selectors jquery-events

index.html中,有一个选择下拉菜单:

<select id="car">
    <option value="bmw">BMW</option>
    <option value="toyota">TOYOTA</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我的js:

var c = $('#car');

var selection;

c.change(function(){

    if(c.val()==='bmw'){

        selection = 'BMW';

    }else if(c.val()==='toyota'){

        selection = 'TOYOTA';

    }

});

console.log(c.val());
console.log(selection);
Run Code Online (Sandbox Code Playgroud)

首次加载页面时,最初的选择是BMW,我得到了很好的控制台输出“ BMW ”,然后我选择了“ TOYOTA ”,但是两个控制台输出仍然是“ BMW ”。

.change(...)更改选择后如何在jQuery 函数外部获取选择的当前值?

__________________________________________________________________________________________________________错误

car.val()并且Selection都是我在帖子中的错字,在我使用的代码中selectionc.val()

我的观点是如何从jQuery change()函数中获取当前选择值。请不要再讨论我的错字了。谢谢。

hun*_*ter 5

您正在查看car何时应该使用ccar没有val()方法。

if(c.val()==='bmw'){

    selection = 'BMW';

} else if(c.val()==='toyota'){

    selection = 'TOYOTA';
}
Run Code Online (Sandbox Code Playgroud)

另请注意,var Selection;该变量将与selection(小写)不同。


更好的方法可能是:

c.change(function(){
    selection = c.find(":selected").text();
});
Run Code Online (Sandbox Code Playgroud)

工作示例:http : //jsfiddle.net/hunter/XespU/