innerText と textContent の違い
var text = dom.innerText || dom.textContent;
<p id="dom">一段文字内容<span style="position:absolute;">...</span></p>
一段文字内容…
<span>
要素内のドットとドットは、前後にスペースがなく、前のテキスト コンテンツと密接に接続されています。 <p>ただし、id="dom"</ の <code><p>
要素の innerText
と textContent
を取得すると、 code> それぞれ > 値、innerText
の戻り値には、実際にはドットの前にスペースがありました。 position:absolute
的<span>
元素里面的点点点...和前面的文字内容是紧密连接在一起的,前后没有任何空格。<p>但是,当我们分别获取id="dom"
的<p>
元素的innerText
和textContent
值的时候,有意思的事情发生了,innerText
的返回值居然在点点点前面出现了一个空格。<p>如下截图所示:<p>
innerText
和textContent
表现出了不同,眼见为实,您可以狠狠地点击这里:innerText和textContent区别对比demo<p>为什么会有这样的差异呢?<p>实际上是innerText
会保留块级元素的换行特性,以换行符形式呈现。在HTML中,如果white-space
不是pre
或pre-wrap
则会表现为空格。也就是下图中的空格实际上是换行符:<p>
white-space:pre
,则会出现下图所示的效果:<p>
<span>
元素是内联元素,但由于设置了position:absolute
使其display
计算值变成了block
,因此,虽然视觉上没有换行,但innerText
获取的时候依旧产生了换行,导致空格出现。<p>2. 规则差异之隐藏元素的获取与否<p>已知有下面一段HTML:<p id="dom2">我后面有一段隐藏文字<span hidden>,就是我啦!</span></p>
dom2.innerText
和dom2.textContent的
返回值,也会看出区别,如下图所示:<p>
display:none
元素是无法使用innerText
获取的,但是textContent
以下のスクリーンショットに示すように: <p>
innerText
と textContent
は違いを示しています。百聞は一見に如かずです。ここをクリックしてください: <p>innerText と textContent の違いの比較デモ なぜ存在するのかそんな違い? 🎜🎜実際、 innerText
はブロックレベル要素の行折り返し特性を保持し、改行の形式で表示します。 HTML では、white-space
が pre
または pre-wrap
ではない場合、スペースとして表示されます。つまり、下の図のスペースは実際には改行です: 🎜🎜white-space:pre
を設定すると、下図のような効果が現れます。 : 🎜🎜position:absolute
が設定されているため、その display
の計算値はしたがって、block
では、見た目には改行がありませんが、innerText
を取得するときに改行が生成され、スペースが生じます。 🎜🎜🎜2. ルールの違い: 隠し要素を取得するかどうか🎜🎜🎜次のようなHTMLがあることがわかっています: 🎜var text = dom.textContent;
dom2.innerText
とを表示します。 >dom2.textContent
以下の図に示すように、違いは戻り値にも現れます: 🎜🎜
innerText< を使用して <code>display:none
要素を取得できないことがわかります。 /code> ですが、要素が非表示かどうかに関係なく、 textContent
も同様です。 🎜🎜ここをクリックしてください: 🎜innerText と textContent の違いの比較デモ🎜🎜🎜🎜3. パフォーマンスとリフローのルールの違い🎜🎜<p>此外,由于innerText
属性值的获取会考虑CSS样式,因此读取innerText
的值将触发回流以确保计算出的样式是最新的,而回流在计算上很昂贵,会降低性能,因此应尽可能避免回流。而textContent
只是单纯读取文本内容,因此性能更高。<p>4. IE浏览器不符合上面规则<p>但是在IE浏览器下,innerText
的表现和规范是不符的,最终表现为textContent
属性一样的效果,也就是没有空格,也不会不显示隐藏元素,例如下面IE11下的效果截图:<p>textContent
不同,在Internet Explorer(版本11及以下)中更改innerText
将从元素中移除子节点,并永久销毁所有子文本节点。不可能再将节点插入任何其他元素或同一元素中。<p>三、最后的结论<p>innerText
由于存在诸多特别的特性、以及兼容性差异,以及性能方面问题,以及实际开发的需求的考量,不推荐使用,推荐使用textContent
获取文本内容。var text = dom.textContent;
var text = dom.textContent || dom.innerText;
innerText
包含的细节这么多。innerHTML
是高频使用属性,没想到原本以为相对应也会高频使用的innerText
居然这么有故事,地位被textContent
取代了,就像小说里的故事一样,总是出乎意料。
<p>另外,如果你要在一个DOM元素中改变文字内容,推荐使用textContent
,而不是innerHTML
,性能会更高一点。
<p>好了,就说这么多,一个小小的研究,希望能够对大家的学习有所帮助。
<p>原文地址:https://www.zhangxinxu.com/wordpress/?p=8941
<p>本文来自 js教程 栏目,欢迎学习!以上がinnerText と textContent の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。
