检测 select 的所有选项何时更改

Detect when all options of a select have changed

有没有办法检测 select 中所有选项的属性何时发生变化? 例如

<select id="languages">
    <option value="en">English<option>
    <option value="fr">French<option>
    <option value="de">German<option>
    ...
</select>

第三方插件将添加(第一次)或更改(第二次+时间)lang 属性,因此它将变为:

<select id="languages">
    <option value="en" lang="fr">Anglais<option>
    <option value="fr" lang="fr">Français<option>
    <option value="de" lang="fr">Allemand<option>
    ...
</select>

所以我想 watch/detect 当所有选项的属性都改变时,我可以调用我的函数。我认为 mutationobserver 可以是方法,但我无法使其工作。

我刚刚弄明白了,如果以后有人需要的话:

var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        console.log('Do your thing');
    });
});

var observerConfig = { 
    attributes: true,
    attributeFilter: ['lang'],
    subtree: true
};

var target = document.querySelector('.languages');

observer.observe(target, observerConfig);