Jquery 如何让一个MutationObserver侦听多个元素上的更改?

Jquery 如何让一个MutationObserver侦听多个元素上的更改?,jquery,Jquery,我已经实现了以下代码来观察课堂上的变化: $(document).ready(function () { var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.attributeName === "class") { var attributeValue = $(mutation.target).prop(m

我已经实现了以下代码来观察课堂上的变化:

$(document).ready(function () {
var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if (mutation.attributeName === "class") {
      var attributeValue = $(mutation.target).prop(mutation.attributeName);
      console.log("Class attribute changed to:", attributeValue);
    }
  });
});

observer.observe(document.querySelector(".xxx"), {
  attributes: true
});  });
JSIDLE链接:


理想情况下,我希望它能够监听类为“xxx”的所有元素中的更改。但它只听xxx类的第一个元素,而忽略其他元素。如何解决此问题?

解决此问题的两种方法:

多个
观察
呼叫 您可以多次调用
observe
来查看多个元素:

$(".xxx").each(function() {
  observer.observe(this, {
    attributes: true
  });
});
实例:

$(文档).ready(函数(){
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
if(mutation.attributeName==“class”){
var attributeValue=$(mutation.target).prop(mutation.attributeName);
log(“类属性更改为:”,attributeValue);
}
});
});
$(“.xxx”)。每个(函数(){
观察者,观察(这个{
属性:true
});
});
});
setTimeout(函数(){
$(“.d1”).addClass(“x1”);
}, 800);
setTimeout(函数(){
$(“.d2”).addClass(“x2”);
}, 1600);
setTimeout(函数(){
$(“.d3”).addClass(“x3”);
}, 2400);

解决此问题的两种方法:

多个
观察
呼叫 您可以多次调用
observe
来查看多个元素:

$(".xxx").each(function() {
  observer.observe(this, {
    attributes: true
  });
});
实例:

$(文档).ready(函数(){
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
if(mutation.attributeName==“class”){
var attributeValue=$(mutation.target).prop(mutation.attributeName);
log(“类属性更改为:”,attributeValue);
}
});
});
$(“.xxx”)。每个(函数(){
观察者,观察(这个{
属性:true
});
});
});
setTimeout(函数(){
$(“.d1”).addClass(“x1”);
}, 800);
setTimeout(函数(){
$(“.d2”).addClass(“x2”);
}, 1600);
setTimeout(函数(){
$(“.d3”).addClass(“x3”);
}, 2400);


对于可运行的示例,请使用现场堆栈片段,而不是场外链接。堆栈代码段是
[]
工具栏按钮。对于可运行的示例,请使用现场堆栈片段,而不是场外链接。堆栈代码段是
[]
工具栏按钮。非常感谢,第一种方法非常有效!非常感谢,第一种方法非常有效!