我正在测试看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>
答案 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);
});
})();