Jquery .change()带大小写

Jquery .change()带大小写,jquery,case,each,Jquery,Case,Each,是否可以添加一个案例陈述?问题是,现在它从droplist中获取值并将其写入#shop#u price。我想添加一个语句,当它接收到例如“door”时,它将不写它,而是写其他东西(例如price:) 如果我们讨论的是单选下拉列表,那么您可以使用以下选项轻松地完成: 如果有很多特殊情况(否则为什么要使用开关而不是If?),您可以制作一张地图: $("select.category").change(function () { var value = $(this).val();

是否可以添加一个案例陈述?问题是,现在它从droplist中获取值并将其写入#shop#u price。我想添加一个语句,当它接收到例如“door”时,它将不写它,而是写其他东西(例如price:)


如果我们讨论的是单选下拉列表,那么您可以使用以下选项轻松地完成:

如果有很多特殊情况(否则为什么要使用
开关而不是
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();

对于初学者,除非您的
允许多个选择,否则使用该方法会更快/更容易。e、 g

var str = $('select.category').val();
要回答您的问题,您可以在each内(如果需要each)或在分配str后使用开关

switch ($('select.category').val())
{
  case 'door':
    $('#shop_price').text('Price:');
    break;
  //...
}

是的,这是可能的。你试过了吗?是的,你有什么问题吗?您还可以使用某种查找映射:
var-map={'door':'price'}。您正在使用单个下拉列表吗?或者共享
.category
类的一组选定元素?这是最接近的,但只有在重新加载页面后才起作用。
$("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();
var str = $('select.category').val();
switch ($('select.category').val())
{
  case 'door':
    $('#shop_price').text('Price:');
    break;
  //...
}