如果语句无法正确比较,则JQuery选择值

时间:2013-04-09 21:19:36

标签: javascript jquery html5

我正在测试看if语句通过比较选择的值到字符串然后显示弹出警报。但是,无论我具体选择什么,警报结果总是说“关闭”。似乎if语句没有比较正确。这是我的代码,

$("#options").change(function(){
                                var selected = $("option:selected", this).val();

                                if(selected == 'line 2')
                                {
                                    alert("line 2");
                                }
                                else if(selected == 'line 3')
                                {
                                    alert("line 3");
                                }
                                else if(selected == 'line 4')
                                {
                                    alert("line 4");
                                }
                                else if(selected == 'line 8')
                                {
                                    alert("line 8");
                                }
                                else
                                {
                                    alert("off");
                                }

                    });

HTML下拉代码,

<select id="options">
                <optgroup label="Caption">
                    <option value="off1">Off</option>
                    <option selected value="2 line">2 Lines</option>
                    <option value="3 line">3 lines</option>
                </optgroup>
                <optgroup label="Transcript">
                    <option value="off2">Off</option>
                    <option value="4 line">4 Lines</option>
                    <option value="8 line">8 lines</option>
                </optgroup>
            </select>

4 个答案:

答案 0 :(得分:2)

值为2 line,您正在与line 2进行比较(例如

试试这个;

var selected = $("option:selected", this).val();
    if(selected == '2 line')
       {
         alert("line 2");
       }

答案 1 :(得分:1)

您所有选项的价值均来自您的测试。

$("#options").change(function(){
                            var selected = $("option:selected", this).val();
                            alert(selected); 
                            if(selected == 'line 2')
                            {
                                alert("line 2");
                            }
                            else if(selected == 'line 3')
                            {
                                alert("line 3");
                            }
                            else if(selected == 'line 4')
                            {
                                alert("line 4");
                            }
                            else if(selected == 'line 8')
                            {
                                alert("line 8");
                            }
                            else
                            {
                                alert("off");
                            }

                });

添加该警报将帮助您测试正确的值。

答案 2 :(得分:0)

您要比较的值与html中的值不匹配。

答案 3 :(得分:0)

您在测试中还原了行文本,您可能也更适合使用数组。

(function() {
    var selectionValues = [
        '2 line',
        '3 line',
        '4 line',
        '8 line'
    ];


    $("#options").change(function() {
        var selected = $("option:selected", this).val();

        var index = selectionValues.indexOf(selected);
        var result;

        if (index !== -1) {
            result = selectionValues[index];
        }
        else {
            result = "Off";
        }

        alert(result);
    });
})();