2012-09-10 30 views
1

大家好我想要做的,當用戶選擇一個選項,另一個選項會出現。是的,我做到了,但是當用戶選擇其他選項,我想顯示的文字,但它不會在這裏工作是我的代碼:如何使用嵌套如果爲多選擇選項?

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

你究竟想要什麼?什麼時候應該是你寫的「你好」? –

+0

如果您正在尋找,您沒有一個值爲5的選項。 –

+0

當你點擊提示選項時,出現另一個選項的選項值爲「a」和「b」,然後當你點擊b選項時,它會顯示「你好」 – Teodoris

回答

3

你需要使用jQuery的on()功能,因爲你想事件處理程序添加到第二選擇,這是動態添加到DOM。

​​

查看DEMO

我已經用div封裝了你的元素,並附加了更改處理程序。

另請注意,我用jQuery選擇器取代了您的javascript getElementById,並簡化了您的值檢查。

1

它不起作用,因爲在腳本運行的那一刻,DOM匹配選擇器.select-box中只有一個元素。所以在創建第二個之後,你必須再次綁定事件監聽器。

+1

我建議解決方案的理論部分,但是Michal的答案是我說什麼,所以用它。 – haynar