aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/mutationrecord/index.html
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>