jQuery的后()方法不能与id属性工作?
-
28-09-2019 - |
题
在下面的代码工作正常。但是,如果我在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>
解决方案
我唯一的猜测是,你正在使用双引号创建的字符串字面量,而且使用它们里面的字符串,因此早终止它。
如果是这样,这:
"<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