有没有办法将 jQuery 应用于动态创建的元素? (不是事件监听器)
Is there a way to apply jQuery to dynamically created elements? (not event listeners)
我已经动态创建了一个具有以下 class 的元素:
<span class="text">Hello</span>
和jQuery:
function changeText() {
var oldText = $(this).text();
$(this).text(oldText + " There");
}
$(function() {
$(".text").each(function(){
changeText.apply(this);
})
})
显然,这是实际发生的情况的简化版本,但基础知识在那里。即使我们没有使用事件侦听器,是否可以将此规则应用于动态创建的元素?
这里的问题是这些“.text”元素没有特定的位置。我们唯一知道这些会出现的地方是 body。我在 body 上使用了一个 mutationObserver...这不会增加性能吗?
喜欢这个
$dynamicElement.find(".text").each(function(){
changeText.apply(this);
})
改为这样做:
function changeText() {
var oldText = $(this).text();
$(this).text(oldText + ' There');
}
$(function(){
$('.text').each(function(i, e){
changeText.call(e);
});
});
我已经动态创建了一个具有以下 class 的元素:
<span class="text">Hello</span>
和jQuery:
function changeText() {
var oldText = $(this).text();
$(this).text(oldText + " There");
}
$(function() {
$(".text").each(function(){
changeText.apply(this);
})
})
显然,这是实际发生的情况的简化版本,但基础知识在那里。即使我们没有使用事件侦听器,是否可以将此规则应用于动态创建的元素?
这里的问题是这些“.text”元素没有特定的位置。我们唯一知道这些会出现的地方是 body。我在 body 上使用了一个 mutationObserver...这不会增加性能吗?
喜欢这个
$dynamicElement.find(".text").each(function(){
changeText.apply(this);
})
改为这样做:
function changeText() {
var oldText = $(this).text();
$(this).text(oldText + ' There');
}
$(function(){
$('.text').each(function(i, e){
changeText.call(e);
});
});