JavaScript:监听属性更改?

JavaScript:监听属性更改?,javascript,attributes,event-handling,custom-events,Javascript,Attributes,Event Handling,Custom Events,在JavaScript中是否可以监听属性值的更改?例如: var element=document.querySelector('…'); element.addEventListener( ? ,doit,false); element.setAttribute('something','whatever'); function doit() { } 我想对something属性中的任何更改做出响应 我已经阅读了MutationObserver对象,以及其他替代对象(包括使用动画事件的

在JavaScript中是否可以监听属性值的更改?例如:

var element=document.querySelector('…');
element.addEventListener( ? ,doit,false);

element.setAttribute('something','whatever');

function doit() {

}
我想对
something
属性中的任何更改做出响应


我已经阅读了
MutationObserver
对象,以及其他替代对象(包括使用动画事件的对象)。据我所知,它们是关于对实际DOM的更改。我更感兴趣的是对特定DOM元素的属性更改,所以我认为不是这样。当然,在我的实验中,它似乎不起作用

我希望在没有jQuery的情况下完成这项工作

感谢您所需要的,在代码片段中,我使用了
setTimeout
来模拟修改属性

var-element=document.querySelector('#test');
setTimeout(函数(){
setAttribute('data-text','whatever');
}, 5000)
var观察者=新的突变观察者(功能(突变){
突变。forEach(功能(突变){
if(mutation.type==“attributes”){
log(“属性已更改”)
}
});
});
观察者,观察(元素){
属性:true//将其配置为侦听属性更改
});

Dummy Text
MutationObserver
适用于此。只需将其配置为侦听属性更改。设置为只观察您感兴趣的元素。感谢您的回答和示例。一旦我简化了它,我认为它将是一种很好的技术,可以通过简单地更改和属性来对元素进行更复杂的更改。它使API变得更简单。您是否知道一个适用于基本浏览器的合理多边形填充?@Manngo,对于您可以使用的基本浏览器,我看到它目前支持IE9,并且在现代浏览器中仍然受支持。再次感谢。