質問

以下のコードは正常に動作しています。しかし、newPara()のHTML文字列を変更すると <textarea></textarea><button id="someId">Save</button> また <textarea></textarea><input type="button" value="Save"/> 動いていない。これの問題は何ですか?

新しく添付されたHTMLを削除するには、そのID属性が必要です。

助言がありますか!

ありがとう!

<html>
  <head>
    <style>
      p { background:yellow; font-weight:bold; cursor:pointer; padding:5px; }
      p.over { background: #ccc; }
      span { color:red; }
    </style>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  </head>
  <body>
    <div id="aDiv">
      <p>Click me!</p>
    </div>

    <span></span>
    <script>
      $("body").delegate("p", "click", newPara);
      $("body").undelegate("button", "click", newPara).find("#adiv").html("<p>Click me!</p>");
      function newPara() {
        var html = "<textarea></textarea><button>Save</button>";
        $(this).after(html);
      }
    </script>
  </body>
</html>
役に立ちましたか?

解決

私の唯一の推測では、文字列を作成するために二重引用符を使用しているだけでなく、文字列内でそれらを使用しているため、早期に終了します。

もしそうなら、これ:

"<textarea></textarea><button id="someId">Save</button>"

あるべきです:

'<textarea></textarea><button id="someId">Save</button>'

内側の引用符が文字列を閉じないように、外側に単一の引用符を使用したことに注意してください。

やってみよう: http://jsfiddle.net/qqrhr/

この例では、正確なコードを使用します。私が行った唯一の変更は、文字列の周りに歌の引用を使用することでした。

また、必要に応じて内面の引用を逃れることもできます。

"<textarea></textarea><button id=\"someId\">Save</button>"

他のヒント

後の代わりに追加をお探しですか?あるいは http://api.jquery.com/insertafter/ ?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top