Javascript 将.each()绑定到动态添加的元素
有没有一种方法可以在页面加载后动态循环添加的元素?像这样的Javascript 将.each()绑定到动态添加的元素,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,有没有一种方法可以在页面加载后动态循环添加的元素?像这样的 if ($('#myFlag').length < 2) { $(document).on('each', '.myEm', function(){ $(this).remove(); }); } if($('#myFlag')。长度
if ($('#myFlag').length < 2) {
$(document).on('each', '.myEm', function(){
$(this).remove();
});
}
if($('#myFlag')。长度<2){
$(document).on('each','.myEm',function(){
$(this.remove();
});
}
如果它是在
上单击
,它将正常工作,但不是在每个
上。为了澄清这一点,我想知道如何在动态添加的元素上执行上述操作,而不必首先链接添加该元素的事件。换句话说,当添加DOM元素时,是否存在我可以利用的通用事件?为什么不将其作为目标并删除?观察下面的例子
$('.myEm').remove()
-简化演示
如果您想“监听”正在添加的这些元素,并在该触发器上执行该逻辑,也许您可以订阅or突变事件。注意以下几点
$(document).on('DOMSubtreeModified', function() { // or DOMNodeInserted
$('.myEm').remove();
});
var config = { attributes: true, childList: true, characterData: true };
var target = document.querySelector('body');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// check if added node has class myEm
if($(mutation.addedNodes).hasClass('myEm')) {
// -- timeout for visual demonstration
setTimeout(function() {
$(mutation.addedNodes).remove(); // .myEm
}, 1000);
}
});
});
observer.observe(target, config);
-DOM变异事件演示
可能在这里也会被利用,并且在提供更多控制权的同时更受欢迎。这方面的一个例子可能包括以下内容
$(document).on('DOMSubtreeModified', function() { // or DOMNodeInserted
$('.myEm').remove();
});
var config = { attributes: true, childList: true, characterData: true };
var target = document.querySelector('body');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
// check if added node has class myEm
if($(mutation.addedNodes).hasClass('myEm')) {
// -- timeout for visual demonstration
setTimeout(function() {
$(mutation.addedNodes).remove(); // .myEm
}, 1000);
}
});
});
observer.observe(target, config);
-突变观察者示例on()的第一个参数必须是事件名称。没有
每一个事件,我甚至不确定这意味着什么。每一个都不是一个事件,所以。关于('each')
没有意义。也许您只是想要$('.myEm')。删除()
?(在本例中,each
循环是隐式的)。如果要使用.each
,语法是$(“.myEm”)。each(function()…)
我尝试过。each()但有些元素是在页面加载后添加的,我的脚本在DOM中看不到它们。还有一点没有意义:If($(“#myFlag”).length<2)。只能有一个元素具有id=“myFlag”
,因此长度将始终小于2。domsubtreemeding的实现范围有多广?MDN没有兼容性表,它不包括在quirksmode.com的事件兼容性页面中。NM,在这里找到了一个表:酷,我正要发布相同的参考。9岁以上?出售!你想解释一下投票失败的原因吗?这似乎很管用,要求解释反对票是浪费时间,他们看不到信息。我给了你一票来补偿他。