获取多个select个菜单的合并值jQuery

Get the combined value of multiple select menus jQuery

正在使用车辆进行项目select或者。这个想法是用户 select 从 select 菜单中输入他们的制造商、型号和年份,当他们单击添加按钮时,它会将三者的组合值(按特定顺序)添加到相邻的无序列表。

我刚刚开始学习如何收集表单控件的值。我认为我走在正确的轨道上,但我不完全在那里。当我单击添加时,它会添加一个值为 "object Object".

的列表项

这是我的 js:

$('.vehicle-select button').click(function (e){
var make = $( "#make option:selected" ).text();
var model = $( "#model option:selected" ).text();
var year = $( "#year option:selected" ).text();
var carName = $(year + make + model);     
$('.my-brands').prepend('<li>' + carName + '</li>');   
});

https://jsfiddle.net/tactics/rcbc6908/

理想情况下,如果用户不能 select 每个 select 中的第一个选项,我会喜欢它,否则他们可以添加值为 "Choose Year Choose Make Choose Model" 的车辆。

感谢任何帮助。

see my updated example

您不需要在串联前后加上 $()。

它应该看起来像

var carName = year + make + model;

而不是

var carName = $(year + make + model);

原因是年份和型号都表示为字符串,因此 + 运算符将按原样连接它们。由于 + 运算符的连接不是 jQuery 功能,因此您不需要将其包装在 $().

这是因为当您包含 $ 时,您正在根据所选值创建一个新的 jquery 对象。使用这个:

 var carName = year + " " + make + " " + model;  

而不是

 var carName = $(year + make + model); 

如果你想使用$,你可以这样做:

 var carName = $('<li>' + year + " " + make + " " + model + '</li>');
 $('.my-brands').prepend(carName);

使用这个:

var carName =[year,make,model].join(' ');