我已经和jquery一起工作了一段时间,所以我遇到这个问题非常尴尬。我创建了一个新元素,但我不能用jquery选择它,我该怎么办呢?这是我用来创建元素的javascript
$('<div id="test">blah</div>').insertAfter('#ref');
html是
<html>
<head>
</head>
<body>
<div id="ref"></div>
</body>
</html>
然后我尝试了这个
$('#test').click(function(){
$(this).remove();
});
但它不起作用......我需要帮助
答案 0 :(得分:4)
这是一个JSFiddle,显示您的代码有效:http://jsfiddle.net/YqEMa/
您可能没有将Javascript放在jQuery“document ready”处理程序中。像这样包装你的Javascript:
$(function() {
$('<div id="test">blah</div>').insertAfter('#ref');
$('#test').click(function() {
$(this).remove();
});
});
这将确保在Javascript运行之前已加载DOM。
此外,当然您应该确保您的脚本位于<script>
标记内。
答案 1 :(得分:2)
$('#test').live('click', function(){
$(this).remove();
});
答案 2 :(得分:2)
如果您只希望单击刚刚插入的元素(而不是页面生命周期中存在的所有#test
元素),则可以将事件绑定到新创建的元素:
$('<div id="test">blah</div>')
.click(function(){
$(this).remove();
})
.insertAfter('#ref');