2012-09-10 61 views
-1

大家好,我試圖做的時候,一個選項按鈕選擇一個其他選項按鈕出現。它的工作原理,但是當其他選項按鈕被選中我想顯示的文字,但它不能在這裏工作是我的代碼:Javascript嵌套如果

<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> 

回答

1
  • 使用最新版本的jQuery。
  • 是的,你不應該巢您if -statements
  • option元素永遠不會有一個「selected」屬性。當你選擇一些東西時,沒有屬性會改變,只有DOM對象的屬性。改爲使用.prop()
  • 不要檢查option元素的選擇性(除非您有多選),只需使用select元素的value屬性(.val()與jQuery)。
  • 請勿使用document.write。一旦文檔被加載(完全解析),這將用新的文檔覆蓋當前文檔。而且您的代碼是在DOMready上執行的,即使在用戶事件上也是如此。
  • 一旦第一個條件匹配,你想改變你的公式。這是可以的,但你不能指望新的表單已經選擇了一些值 - 你需要再次登錄change事件