jquery判断option value 是否相等

HTML代码:

    <select  name="menu" id="options">
         <option value="1">1</option>
         <option value="2">2</option>
         <option value="love">love</option>
   </select>

如何判断下拉时候 选择love时 弹出提示?选择 1 2 不用提示的。

   var selectValue = $('select').val("love");
    $('#options').each(function(a){
        if($(a).attr('value') == selectValue){
            alert('被选中');
        }
    });

我写的方法不知道哪里出问题了。

阅读 4.3k
5 个回答

$('#options') 是那个 <select id="options">,你应该在它的子项,也就是 <option>each()

$("#options > option").each( ...)

$("#options").children().each( ... )

还有,jQuery 的 each() 方法,第一个参数是 index,第二个参数才是元素,和原生的 forEach 参数是相反的,所以回调应该这样定义

function(i, a) {
   $(a)......
}

这个问题的正解应该是处理 change 事件

$("#options").on("change", function(e) {
    if ($(this).val() === "love") {
        alert("love");
    }
});
if($("#options").val() == selectValue){alert("被选中");}

你用的jquery,可以直接使用change方法,$(selector).change(function)

onchange 事件试试吧

var selectValue = $('select').val();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进