首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将嵌套的if用于多选选项?

如何将嵌套的if用于多选选项?
EN

Stack Overflow用户
提问于 2012-09-10 19:49:27
回答 2查看 505关注 0票数 1

大家好,我正在尝试做当用户选择一个选项,另一个选项将出现。是的,我这样做了,但当用户选择其他选项时,我想显示文本,但它不起作用,这里是我的代码:

代码语言:javascript
复制
<html>
  <head>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script></script>
    <script type="text/javascript">
      $(document).ready(function() {

        $(".select-box").change(function() {
          if ($(".select-box option[value='3']").attr('selected')) {
           document.getElementById("demo").innerHTML="<select class='select-box'><option value='4'>a</option><option value='5'>b</option></select>";
          if ($(".select-box option[value='5']").attr('selected')) {
          document.write("Hello")
          }
          }

        }); 

      });
    </script>
  </head>
  <body>
    <select class="select-box">
      <option>Select an option</option>
      <option value="1">no alert</option>
      <option value="2">no alert too</option>
      <option value="3">alert</option>
    </select> 
    <p></br>
    <div id="demo"></div>

  </body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-10 19:58:18

您需要使用jQuery的on()函数,因为您希望向第二个select添加eventhandler,该select是动态添加到DOM的。

代码语言:javascript
复制
$(document).ready(function() {

    $('#main').on('change', '.select-box', function() {

        if ($(this).val() == 3) {
            $('#demo').html("<select class='select-box'><option value='4'>a</option><option value='5'>b</option></select>");
        }

        if ($(this).val() == 5) {
            alert("Hello");
        }
    });

});​

请参阅DEMO

我已经用div包装了您的元素,并将更改处理程序附加到它。

还要注意的是,我已经用jQuery选择器替换了你的javascript getElementById,并且我简化了你的值检查。

票数 3
EN

Stack Overflow用户

发布于 2012-09-10 19:58:50

它不起作用,因为在脚本运行时,DOM匹配选择器.select-box中只有一个元素。因此,在创建第二个事件侦听器之后,您必须再次绑定事件侦听器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12351069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档