我已经动态创建了一个元素,其中包括以下类:
<span class="text">Hello</span>
和jQuery:
function changeText() {
var oldText = $(this).text();
$(this).text(oldText + " There");
}
$(function() {
$(".text").each(function(){
changeText.apply(this);
})
})
显然,这是实际发生的事情的简化版本,但基本知识在那里。即使我们不使用事件侦听器,也可以将此规则应用于动态创建的元素吗?
这里的问题是这些" .text"元素没有特定位置。我们知道这些出现的唯一地方是体内。我在身体上使用突变处理器...这不是征税表现吗?
而不是这样做:
function changeText() {
var oldText = $(this).text();
$(this).text(oldText + ' There');
}
$(function(){
$('.text').each(function(i, e){
changeText.call(e);
});
});
喜欢这个
$dynamicElement.find(".text").each(function(){
changeText.apply(this);
})