我只是将一些html附加到另一个JQuery对象。我想获得对新创建的dom节点的引用,以便我可以在其上调用另一个函数。如下面的代码所示,我没有得到我想要的参考。我将获得具有原始id的节点,而不是新节点。
var a = $("#id").append("some_html");
a.live('click', function(event){
alert("hello!");
});
答案 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
。在这种情况下,只需使用bind
或click
辅助方法:
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!');
});