获得对刚刚附加到DOM的jquery元素的访问权限

我只是附加在DOM上的元素,如:

$("#div_element").append('<a href="#">test</a>'); 

我追加它后,我需要访问我刚刚做的为了绑定一个点击function的元素,我试过:

 $("#div_element").append('<a href="#">test</a>').click(function(){alert("test")}); 

但上述不起作用。 我可以唯一地识别元素,但这似乎有点多less工作,也许有一种方法,我可以在我追加它后的权利。

你可以这样做:

 var el = $('<a href="#">test</a>'); $("#div_element").append(el); el.click(function(){alert("test")}); // or preferrably: el.on('click', function(){alert("test")}); 

append函数接受两种types的参数:一个string或一个jQuery元素。 在传入string的情况下,它将在内部创build一个jQuery元素并将其附加到父元素。

在这种情况下,你想自己访问jQuery元素,所以你可以附加事件处理程序。 所以,不要传入string,并让jQuery创build一个元素,您必须先创build该元素,然后将其传递给append函数。

完成之后,仍然可以访问jQuery元素以便能够附加处理程序。

 var $a = $('<a />', {href:"#"}) .text("test") .on('click', function(e) { alert('Hello') }) .appendTo('#div_element'); 

http://jsfiddle.net/33jX4/

为该element添加标识,然后按如下所示使用它

 $("#div_element").append('<a id="tester" href="#">test</a>'); $('#tester').on('click', function(event) { console.log('tester clicked'); }); 

为什么不在添加之前保存对新元素的引用:

 var newElement = $('<a href="#">test</a>'); $("#div_element").append(newElement); newElement.click(function(){alert("test")}); 

最后一个元素将是新元素

 $('a:last','#div_element').on('click',function(){ // do something }); 

您可以在创build时将事件附加到元素 –

 var ele =$("<a href='#'>Link</a>"); ele.on("click",function(){ alert("clicked"); }); $("#div_element").append(ele); 

只需将点击处理程序附加到锚点之后再添加它。

 $("#div_element").append($('<a href="#">test</a>').click(function(){alert("test")}));