在我的 index.html 中,我有一个选择下拉菜单:
<select id="car">
<option value="bmw">BMW</option>
<option value="toyota">TOYOTA</option>
</select>
我的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);
当页面首次加载时,初始选择是宝马,我得到控制台输出“宝马”这很好,然后我选择“ TOYOTA “,但两个控制台输出仍然是”宝马“。
如何获得最新信息
选择改变后,jQuery .change(...)
函数之外的选择值是什么?
_ __ _ __ _ __ 错字已修复 __ _ < / EM> __ _ _
car.val()
和Selection
都是我在帖子中的拼写错误,在我的代码中我使用了selection
和c.val()
。
我的观点是如何将当前选择值排除在jQuery change()函数之外。请不要再讨论我的拼写错误。谢谢。
答案 0 :(得分:4)
当您使用car
时,您正在查看c
。 car
没有val()
方法。
if(c.val()==='bmw'){
selection = 'BMW';
} else if(c.val()==='toyota'){
selection = 'TOYOTA';
}
另请注意,var Selection;
与selection
(小写)的变量不同。
更好的方法可能是:
c.change(function(){
selection = c.find(":selected").text();
});
答案 1 :(得分:1)
您应该使用小写来定义var选择,如下所示:
var selection;
为什么呢? Javascript区分大小写,因此,敏感和敏感是不同的变量。
另外,您应该定义汽车变量,如下所示:
var selection;
c.change(function(){
var car = $(this); //declare it
if(car.val()==='bmw'){
selection = 'BMW';
}else if(car.val()==='toyota'){
selection = 'TOYOTA';
}
});