无法使用jquery选择新创建的对象

时间:2011-12-24 11:06:21

标签: javascript jquery html

我已经和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();
});

但它不起作用......我需要帮助

3 个答案:

答案 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');