.change () с регистром - PullRequest
       8

.change () с регистром

1 голос
/ 11 сентября 2011

возможно ли добавить к этому утверждение case? Дело в том, что теперь он берет значение из выпадающего списка и записывает его в #shop_price. Я хочу добавить утверждение, что когда он получает, например, «дверь», вместо того, чтобы писать это, он будет писать что-то еще (например, цена :).

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

Ответы [ 3 ]

1 голос
/ 11 сентября 2011

Для начинающих, если ваш <select> не позволяет множественный выбор с использованием метода .val() гораздо быстрее / проще. например,

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

Чтобы ответить на ваш вопрос, вы можете использовать переключатель внутри каждого (если каждый необходим) или после назначения стр.

switch ($('select.category').val())
{
  case 'door':
    $('#shop_price').text('Price:');
    break;
  //...
}
1 голос
/ 11 сентября 2011

Если мы говорим о раскрывающемся списке с одним выбором, вы можете сделать это намного проще, используя 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();
0 голосов
/ 11 сентября 2011
$("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();

Демо

...