[英]Getting access to a jquery element that was just appended to the DOM
我只是添加一個DOM上的元素,如:
$("#div_element").append('<a href="#">test</a>');
在我追加它之后,我需要訪問我剛剛創建的元素以便將click函數綁定到它,我試過:
$("#div_element").append('<a href="#">test</a>').click(function(){alert("test")});
但上述方法無效。 我可以唯一地識別元素,但這似乎有點工作,或許有一種方法,我可以在我追加它后立即獲得元素。
你可以這樣做:
var el = $('<a href="#">test</a>');
$("#div_element").append(el);
el.click(function(){alert("test")});
// or preferrably:
el.on('click', function(){alert("test")});
append函數接受兩種類型的參數:字符串或jQuery元素。 如果傳入一個字符串,它將在內部創建一個jQuery元素並將其附加到父元素。
在這種情況下,您希望自己訪問jQuery元素,因此您可以附加事件處理程序。 因此,不是傳入字符串並讓jQuery創建元素,而是必須先創建元素,然后將其傳遞給append-function。
完成后,您仍然可以訪問jQuery元素以便能夠附加處理程序。
var $a = $('<a />', {href:"#"})
.text("test")
.on('click', function(e) {
alert('Hello')
})
.appendTo('#div_element');
為什么不在追加它之前保存對新元素的引用:
var newElement = $('<a href="#">test</a>');
$("#div_element").append(newElement);
newElement.click(function(){alert("test")});
向該element
添加標識,然后按如下方式使用它
$("#div_element").append('<a id="tester" href="#">test</a>');
$('#tester').on('click', function(event) {
console.log('tester clicked');
});
最后一個元素是新元素
$('a:last','#div_element').on('click',function(){
// do something
});
您可以在創建元素時將事件附加到元素 -
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")}));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.