-1

こんにちは、他のオプション ボタンを選択したオプション ボタンが表示されたときにしようとしています。それは機能しますが、他のオプションボタンが選択されている場合、テキストを表示したいのですが、ここでは機能しません私のコードです:

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

1 に答える 1

1
  • 現在のバージョンの jQuery を使用します。
  • ifはい、ステートメントをネストしないでください
  • option要素に " selected" 属性が含まれることはありません。何かを選択しても属性は変更されず、DOM オブジェクトのプロパティのみが変更されます。.prop()代わりに使用してください。
  • option要素の選択性をまったくチェックしないでください(複数選択がない限り)、要素のvalueプロパティを( jQueryで)使用するだけです。select.val()
  • 使用しないでくださいdocument.write。ドキュメントが読み込まれる (完全に解析される) とすぐに、現在のドキュメントが新しいドキュメントで上書きされます。そして、ユーザー イベントであっても、コードDOMready で実行されます。
  • 最初の条件が一致するとすぐに、式を変更したいとします。これは問題ありませんが、新しいフォームで既にいくつかの値が選択されているとは期待できません。changeイベントをフックする必要があります。
于 2012-09-10T11:37:13.610 に答える