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岁以上?出售!你想解释一下投票失败的原因吗?这似乎很管用,要求解释反对票是浪费时间,他们看不到信息。我给了你一票来补偿他。