Javascript nested if

Javascript nested if

本文关键字:if nested Javascript      更新时间:2023-09-26

大家好,当一个选项按钮选择了另一个选项时,我要做的是。它工作,但当选择另一个选项按钮时,我想显示文本,但它不工作,这是我的代码:

<html>
  <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.js"></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>
  • 使用当前版本的jQuery
  • 是的,您不应该嵌套if-语句
  • option元素永远不会有"selected"属性。当您选择某个内容时,不会更改任何属性,只更改DOM对象的属性。请改用.prop()
  • 根本不要检查option元素的可选性(除非您有多选),只需使用select元素的value属性(.val()与jQuery)
  • 不要使用document.write。一旦加载(完全解析)文档,就会用新文档覆盖当前文档。您的代码是在DOMready上执行的,甚至在用户事件上也是如此
  • 一旦第一个条件匹配,您就需要更改您的公式。这是可以的,但您不能期望新表单已经选择了一些值——您需要再次挂接change事件