## 标准 API:attributeFilter
绑定监听,监听指定 attribute 变化。回调函数的第一个参数为 MutationRecord[]。
> `attributeFilter(target, callback, filter[, subtree])`
- target
- 描述:需要被监听的节点
- 类型:`string`/`Element`/`Node`
- callback
- 描述:监听到变化时执行的回调函数
- 类型:`(mutations: MutationRecord[], observer: MutationObserver) => void`
- filter
- 描述:`MutationObserverInit.attributeFilter`
- 类型:`Array<string>`
- subtree
- 描述:是否将监视范围扩展至目标节点整个节点树中的所有节点
- 类型:`boolean`
- 默认值:`false`
## 变种 API:eattributeFilter
绑定监听,监听指定 attribute 变化。回调函数的第一个参数为 MutationRecord。
> `eattributeFilter(target, eachcall, filter[, subtree])`
- target
- 描述:需要被监听的节点
- 类型:`string`/`Element`/`Node`
- eachcall
- 描述:监听到变化时执行的回调函数
- 类型:`(mutation: MutationRecord, observer: MutationObserver) => void`
- filter
- 描述:`MutationObserverInit.attributeFilter`
- 类型:`Array<string>`
- subtree
- 描述:是否将监视范围扩展至目标节点整个节点树中的所有节点
- 类型:`boolean`
- 默认值:`false`
## DEMO
```js
import { attributeFilter, eattributeFilter } from "m-observer"
const filter = ['title', 'src', 'style', 'link', 'alt']
attributeFilter('#demo1' (mutations) => {
for (let mutation of mutaitons) {
// do something
}
}, filter)
eattributeFilter('#demo2', (mutation) => {
// do something
}, filter)
```