aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/text/wholetext/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/zh-cn/web/api/text/wholetext/index.html')
-rw-r--r--files/zh-cn/web/api/text/wholetext/index.html141
1 files changed, 141 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/text/wholetext/index.html b/files/zh-cn/web/api/text/wholetext/index.html
new file mode 100644
index 0000000000..5ec686a5b9
--- /dev/null
+++ b/files/zh-cn/web/api/text/wholetext/index.html
@@ -0,0 +1,141 @@
+---
+title: Text.wholeText
+slug: Web/API/Text/wholeText
+translation_of: Web/API/Text/wholeText
+---
+<p>{{ apiref("DOM") }}</p>
+
+<p><font><font>该</font></font><strong><code>Text.wholeText</code></strong><font><font>只读属性返回</font></font><a href="https://developer.mozilla.org/en-US/docs/Web/API/Text" title="文本界面表示元素或属性的文本内容。 如果一个元素在其内容中没有标记,则它有一个实现包含元素文本的Text的单个子元素。 但是,如果元素包含标记,则将其解析为形成子元素的信息项和文本节点。"><code>Text</code></a><font><font>逻辑上相邻的节点的所有文本。</font></font><font><font>文本按文档顺序连接。</font><font>这允许指定任何文本节点并获取所有相邻文本作为单个字符串。</font></font></p>
+
+<h2 id="Syntax" name="Syntax">Syntax</h2>
+
+<pre class="syntaxbox notranslate"><em>str</em> = <em>textnode</em>.wholeText;</pre>
+
+<h2 id="Example" name="Example">Notes and example</h2>
+
+<p>假设你的网页上有如下的简单文本(包括其中为了格式化代码而添加的一些空格), 其 DOM 节点 被储存在变量 <code>para</code> 中:</p>
+
+<pre class="brush: html notranslate">&lt;p&gt;Thru-hiking is great! &lt;strong&gt;No insipid election coverage!&lt;/strong&gt;
+ However, &lt;a href="http://en.wikipedia.org/wiki/Absentee_ballot"&gt;casting a
+ ballot&lt;/a&gt; is tricky.&lt;/p&gt;
+</pre>
+
+<p>你觉得你不喜欢中间的句子, 所以你移除了它:</p>
+
+<pre class="brush: js notranslate">para.removeChild(para.childNodes[1]);
+</pre>
+
+<p>过了一会, 你又决定给“Thru-hiking is great, but casting a ballot is tricky.”这句换个说法, <em>同时保留超链接</em>。 所以你尝试以下代码:</p>
+
+<pre class="brush: js notranslate">para.firstChild.data = "Thru-hiking is great, but ";
+</pre>
+
+<p>一切妥当, 是么? <em>不!</em> 这会使你移除 <code>strong</code> 元素, 而被删掉的句子分隔了两个文本节点. 一个是第一句, 一个是最后一个单词. 相反, 你现在获得如下效果:</p>
+
+<pre class="brush: html notranslate">&lt;p&gt;Thru-hiking is great, but However, &lt;a
+ href="http://en.wikipedia.org/wiki/Absentee_ballot"&gt;casting a
+ ballot&lt;/a&gt; is tricky.&lt;/p&gt;
+</pre>
+
+<p>实际上,你更倾向于将这些相邻扽文本节点作为同一文本节点. 这就是 <code>wholeText</code> 的用武之地:如果你有许多相邻的文本节点, 你可以通过<code>wholeText</code>访问这些节点里的所有内容。让我们假设你从未犯过最后一个错误. 在这种情况下, 我们有:</p>
+
+<pre class="brush: js notranslate">assert(para.firstChild.wholeText == "Thru-hiking is great! However, ");
+</pre>
+
+<p><code>wholeText</code> 只是文本节点的一个属性,特可以返回连接了所有相邻(i.e. 没有被其它元素边界分开) 文本节点数据的字符串 。</p>
+
+<p>现在让我们回到最初的问题. 我们想做的是用新的文本替代旧的文本. 这就是 {{domxref("Text.replaceWholeText", "replaceWholeText()")}} 用处所在:</p>
+
+<pre class="brush: js notranslate">para.firstChild.replaceWholeText("Thru-hiking is great, but ");
+</pre>
+
+<p>我们移除了所有的相邻文本节点 (所有构成whole text的文本节点) 除了调用<code>replaceWholeText()</code> 的,并且把剩余的文本改成了新文本. 我们现在所得到的是这样的:</p>
+
+<pre class="brush: html notranslate">&lt;p&gt;Thru-hiking is great, but &lt;a
+ href="http://en.wikipedia.org/wiki/Absentee_ballot"&gt;casting a
+ ballot&lt;/a&gt; is tricky.&lt;/p&gt;
+</pre>
+
+<p>有时候使用whole-text 功能同时使用<code>Node.textContent</code> 或长期支持的 {{domxref("Element.innerHTML")}}; 可以得到更好的处理。如果你需要处理一个元素内的混合内容, 正如本文所介绍的, <code>wholeText</code> 和 <span class="internal"><code>replaceWholeText()</code></span> 是有用的。</p>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM WHATWG', '#dom-text-wholetext', 'Text.wholeText')}}</td>
+ <td>{{Spec2('DOM WHATWG')}}</td>
+ <td>No significant change.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('DOM3 Core', 'core.html#Text3-wholeText', 'Text.wholeText')}}</td>
+ <td>{{Spec2('DOM3 Core')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Edge</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>1.0</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoDesktop("1.9.1")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Edge</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoMobile("1.9.1")}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>The {{domxref("Text")}} interface it belongs to.</li>
+</ul>