JavaScript 事件,用于侦听 DOM 中的文本随 jQuery 更改

JavaScript event to listen when text in DOM changes with jQuery

提问人:Alex 提问时间:12/2/2022 最后编辑:Peter MortensenAlex 更新时间:12/4/2022 访问量:76

问:

我正在尝试获取购物车的小计(要访问购物车,您必须从 tecnosport.es 单击屏幕右上角的部分)。

要获取小计,请执行以下操作:

jQuery(".elementor-menu-cart__subtotal > .woocommerce-Price-amount > bdi");

由于我有三个小部件,所以我得到了三个元素,但你可以看到这样的值;

jQuery(".elementor-menu-cart__subtotal > .woocommerce-Price-amount > bdi").text();

我的目标:当我将某些产品添加到购物车时,我想听听小计是否更改以执行某些操作(例如,通过 console.log 在控制台中查看它)。

我试过了,但它不起作用:

1. 由于我得到了三个元素,我应该在循环中迭代它们并监听事件:

jQuery(".elementor-menu-cart__subtotal > .woocommerce-Price-amount > bdi").bind("DOMSubtreeModified", function(){
    jQuery(this).each(function( index ) {
        console.log("The content changed");
    });
});

2. 我试图更改顺序:

jQuery(".elementor-menu-cart__subtotal > .woocommerce-Price-amount > bdi").each(function( index ) {
    jQuery(this).bind("DOMSubtreeModified", function(){
        console.log("The content changed");
    });
});

一件奇怪的事情:例如,如果我使用一些带有 ID 的单个元素(而不是三个元素)执行此操作,它可以完美运行。我迭代错了吗?我很迷茫。

JavaScript jQuery DOM 事件

评论

1赞 freedomn-m 12/2/2022
在代码运行时检查选择器: - 可能是购物车是在代码运行后生成的,因此没有要附加事件的元素。如果事件冒泡,则可以将事件附加到确实存在的父元素。console.log(jQuery(".elementor-menu-cart__subtotal > .woocommerce-Price-amount > bdi").length)
2赞 Teemu 12/2/2022
突变事件已过时,请改用 Mutation Observer

答: 暂无答案