以下代码运行正常。但是如果我将newPara()中的html字符串更改为<textarea></textarea><button id="someId">Save</button>
或<textarea></textarea><input type="button" value="Save"/>
则无效。这有什么问题?
我需要id属性来删除新附加的html。
任何建议!
谢谢!
<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>
答案 0 :(得分:1)
你在寻找追加而不是之后吗?甚至是http://api.jquery.com/insertAfter/?
答案 1 :(得分:1)
我唯一的猜测是你使用双引号创建字符串文字,但也在字符串中使用它们,因此提前终止它。
如果是这样,那么:
"<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>"