.change() 带大小写

发布于 2024-12-04 09:36:46 字数 322 浏览 0 评论 0原文

是否可以添加一个案例陈述?问题是,现在它从下拉列表中获取值并将其写入#shop_price。我想添加一个声明,当它收到例如“门”时,它不会写这个,而是写其他东西(例如价格:)。

$("select.category").change(function () {
 var str = "";
 $("select.category选项:已选择").each(function () {
 str += $(this).text();
 });
 $("#shop_price").text(str);
 })
 。改变();

is it possible to add a case statement to that? The thing is that now it takes the value from the droplist and writes it to #shop_price. I want to add a statement that when it receives for example "door", instead of writing that, it would write something else (eg. price:).

$("select.category").change(function () {
 var str = "";
 $("select.category option:selected").each(function () {
 str += $(this).text();
 });
 $("#shop_price").text(str);
 })
 .change();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

允世 2024-12-11 09:36:46

如果我们讨论的是单选下拉列表,您可以使用 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();

If we are talking about a single-select dropdown, you can do it much easier using val:

$("select.category").change(function () {
    var value = $(this).val();
    switch(value) {
        case "door":
             // whatever
             break;
        default:
             $("#shop_price").text(value);
             break;
    }
}).change();

If there is going to be a lot of special cases (otherwise why use switch instead of if?), you can make a map:

$("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();
挽心 2024-12-11 09:36:46

对于初学者来说,除非您的

var str = $('select.category').val();

,要回答您的问题,您可以在each(如果each是必要的)内或在分配str之后使用开关。

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

For starters, unless your <select> allows multiple selections using the .val() method is much faster/easier. e.g.

var str = $('select.category').val();

To answer your question though, you can use a switch within either the each (if the each is necessary) or after you assign str.

switch ($('select.category').val())
{
  case 'door':
    $('#shop_price').text('Price:');
    break;
  //...
}
烈酒灼喉 2024-12-11 09:36:46
$("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();

演示

$("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();

Demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文