blob: 0b2d6a97fe0e4ae8966dd12b17f7ee53fd4130d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
---
title: MutationRecord
slug: Web/API/MutationRecord
tags:
- API
- DOM
- 参考
- 进阶
translation_of: Web/API/MutationRecord
---
<div>{{APIRef("DOM")}}</div>
<p>每个 <code><strong>MutationRecord</strong></code> 都代表一个独立的 DOM 变化,在每次随 DOM 变化调用 {{domxref("MutationObserver")}} 的回调函数时,一个相应的 <code>MutationRecord</code> 会被作为参数,传递给回调函数。</p>
<h2 id="属性">属性</h2>
<table class="standard-table">
<tbody>
<tr>
<td class="header">属性</td>
<td class="header">类型</td>
<td class="header">描述</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.type")}}</td>
<td><code>String</code></td>
<td>如果是属性变化,则返回 <code>"attributes"</code>;<br>
如果是 <code>characterData</code> 节点变化,则返回 <code>"characterData"</code>;<br>
如果是子节点树 <code>childList</code> 变化,则返回 <code>"childList"</code>。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.target")}}</td>
<td>{{domxref("Node")}}</td>
<td>根据 {{domxref("MutationRecord.type")}},返回变化所影响的节点。<br>
对于属性 <code>attributes</code> 变化,返回属性变化的节点。<br>
对于 <code>characterData</code> 变化,返回 <code>characterData</code> 节点。<br>
对于子节点树 <code>childList</code> 变化,返回子节点变化的节点。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.addedNodes")}}</td>
<td>{{domxref("NodeList")}}</td>
<td>返回被添加的节点。<br>
如果没有节点被添加,则该属性将是一个空的 {{domxref("NodeList")}}。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.removedNodes")}}</td>
<td>{{domxref("NodeList")}}</td>
<td>返回被移除的节点。<br>
如果没有节点被移除,则该属性将是一个空的 {{domxref("NodeList")}}。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.previousSibling")}}</td>
<td>{{domxref("Node")}}</td>
<td>返回被添加或移除的节点之前的兄弟节点,或者 <code>null</code>。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.nextSibling")}}</td>
<td>{{domxref("Node")}}</td>
<td>返回被添加或移除的节点之后的兄弟节点,或者 <code>null</code>。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.attributeName")}}</td>
<td><code>String</code></td>
<td>返回被修改的属性的属性名,或者 <code>null</code>。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.attributeNamespace")}}</td>
<td><code>String</code></td>
<td>返回被修改属性的命名空间,或者 <code>null</code>。</td>
</tr>
<tr>
<td>{{domxref("MutationRecord.oldValue")}}</td>
<td><code>String</code></td>
<td>
<p>返回值取决于 {{domxref("MutationRecord.type")}}。<br>
对于属性 <code>attributes</code> 变化,返回变化之前的属性值。<br>
对于 <code>characterData</code> 变化,返回变化之前的数据。<br>
对于子节点树 <code>childList</code> 变化,返回 <code>null</code>。</p>
<div class="note">
<p>注意,如果要让这个属性起作用,在相应的 <a href="/zh-CN/docs/Web/API/MutationObserverInit">MutationObserverInit</a> 参数的 <code>MutationObserver</code> <a href="/zh-CN/docs/Web/API/MutationObserver/observe">observe</a> 方法中,<code>attributeOldValue</code> 或者 <code>characterDataOldValue</code> 必须设置为 <code>true</code>。</p>
</div>
</td>
</tr>
</tbody>
</table>
<h2 id="规范">规范</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">规范</th>
<th scope="col">状态</th>
<th scope="col">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('DOM WHATWG', '#mutationrecord', 'MutationRecord')}}</td>
<td>{{ Spec2('DOM WHATWG') }}</td>
<td></td>
</tr>
<tr>
<td>{{SpecName('DOM4', '#mutationrecord', 'MutationRecord')}}</td>
<td>{{ Spec2('DOM4') }}</td>
<td></td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
<p>{{Compat("api.MutationRecord")}}</p>
|