为什么这个开关不适用于我的onchange

时间:2012-01-20 05:43:13

标签: javascript jquery switch-statement

我正在根据从下拉列表中选择的值更改变量。我有类似的工作与if / else语句,但当我尝试使用开关我无法让它工作。我在这里a fiddle of this

html:

<select class="heiSelect">
            <option value='3924'>6'1"</option>
            <option value='3923'>6'2"</option>
            <option value='3922'>6'3"</option>
            <option value='3921'>6'4"</option>
            <option value='3920'>6'5"</option>
            <option value='3919'>6'6"</option>
            <option value='3918'>6'7"</option>
            <option value='3917'>6'8"</option>
            <option value='3916'>6'9"</option>
            <option value='3915'>6'10"</option>
     </select>
<h1>Results : </h1>

javascript:

$(function() {
    var hvd = 0;
    $('.heiSelect').change(function() {
        var heiValue = $('.heiSelect').val();
        switch (heiValue) {
        case 3915:
            hvd = 4294964526;
            break;
        case 3916:
            hvd = 4294964528;
            break;
        case 3917:
            hvd = 4294964529;
            break;
        case 3918:
            hvd = 4294964406;
            break;
        case 3919:
            hvd = 4294964495;
            break;
        case 3920:
            hvd = 4294964494;
            break;
        case 3921:
            hvd = 4294964493;
            break;
        case 3922:
            hvd = 4294964492;
            break;
        case 3923:
            hvd = 4294964491;
            break;
        case 3924:
            hvd = 4294964490;
            break;
        }
        $('h1').append(heiValue + " + " + hvd + ", ");

    });
});

你能看到问题吗?

2 个答案:

答案 0 :(得分:1)

该值是一个字符串,而您根据数字对它们进行了测试。

要修复它,要么将字符串解析为整数:

var heiValue = parseInt($('.heiSelect').val(), 10);

或在案例中使用字符串:

case '3915': 

答案 1 :(得分:0)

heiValue是一个字符串,您要与switch语句中的整数进行比较。

heiValue解析为整数,或将case语句转换为字符串。