可以添加一个case语句吗?问题是现在它从droplist中获取值并将其写入#shop_price。我想添加一个声明,当它收到例如“门”时,而不是写那个,它会写别的东西(例如价格:)。
$("select.category").change(function () { var str = ""; $("select.category option:selected").each(function () { str += $(this).text(); }); $("#shop_price").text(str); }) .change();
答案 0 :(得分:1)
如果我们谈论的是单选下拉菜单,您可以使用val
轻松完成:
$("select.category").change(function () {
var value = $(this).val();
switch(value) {
case "door":
// whatever
break;
default:
$("#shop_price").text(value);
break;
}
}).change();
如果会出现很多特殊情况(否则为什么要使用switch
代替if
?),您可以制作地图:
$("select.category").change(function () {
var value = $(this).val();
// This map has function values to give you maximum flexibility on how
// you want to handle "special" cases. Here, I 'll show an alert.
var map = {
// note that you can access value normally inside these functions
"door": function() { alert("I don't like doors!"); }
// other special cases here
};
if(map[value]) {
map[value]();
}
else {
$("#shop_price").text(value);
}
}).change();
答案 1 :(得分:1)
对于初学者,除非<select>
允许使用.val()
方法进行多项选择,否则更快/更容易。 e.g。
var str = $('select.category').val();
要回答你的问题,你可以在每一个中使用一个开关(如果需要的话)或者在你指定str之后。
switch ($('select.category').val())
{
case 'door':
$('#shop_price').text('Price:');
break;
//...
}
答案 2 :(得分:0)
$("select.category").change(function () {
var str = "";
$("option:selected", this).each(function () {
var text = $(this).text();
str += (text == 'door') ? 'price' : text;
});
$("#shop_price").text(str);
}).change();