如何获取我刚刚在JQuery中附加的dom节点的引用?

时间:2010-06-21 01:28:52

标签: javascript jquery

我只是将一些html附加到另一个JQuery对象。我想获得对新创建的dom节点的引用,以便我可以在其上调用另一个函数。如下面的代码所示,我没有得到我想要的参考。我将获得具有原始id的节点,而不是新节点。

var a = $("#id").append("some_html");
a.live('click', function(event){
    alert("hello!");
});

2 个答案:

答案 0 :(得分:3)

这取决于HTML是什么。如果它可以包含在div中,那么请执行以下操作:

var a = $("some_html").appendTo("#id");

一个完整的例子(使用1.4+语法)是这样的:

var a = $("<a />", { href: "/new/page", text: "Click Me" }).appendTo("#id");

这个差异是append返回父对象(它不会破坏现有的链),appendTo返回新创建的对象,即使它被追加也是如此。

编辑:此外,您错误地使用了live。在这种情况下,只需使用bindclick辅助方法:

a.click(function(event){
    alert("hello!");
});

最佳使用:最后,使用jQuery 1.4+,您可以执行此操作,无需保留变量:

$("<a />", { 
  href: "#", 
  text: "Click Me",
  click: function (e) {
    e.preventDefault();
    alert("hello!");
  } 
}).appendTo("#id");

答案 1 :(得分:0)

var newNode = $('some_html');
$('#id').append(newNode);

newNode.live('click', function(event) {
    alert('hello!');
});