jquery after()メソッドはid属性で動作しませんか?
-
28-09-2019 - |
質問
以下のコードは正常に動作しています。しかし、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/ ?
所属していません StackOverflow