[解決済み] nodeValue vs innerHTML and textContent。どう選ぶ?重複
2022-05-16 01:01:40
質問
label要素の内側のテキストを変更するためにplain jsを使っているのですが、innerHTMLやnodeValue、textContentをどのような根拠で使えばいいのか分かりませんでした。新しいノードを作ったり、HTML要素を変更したりする必要はなく、ただテキストを置き換えるだけです。以下はコードの例です。
var myLabel = document.getElementById("#someLabel");
myLabel.innerHTML = "Some new label text!"; // this works
myLabel.firstChild.nodeValue = "Some new label text!"; // this also works.
myLabel.textContent = "Some new label text!"; // this also works.
jQueryのソースを見てみると、nodeValueは1回だけですが、innerHTMLとtextContentは何度も使っています。そして、このjsperfのテストを見つけ、firstChild.nodeValueがかなり高速であることを示しました。少なくとも、私はそれを意味するものと解釈しています。
firstChild.nodeValue がそんなに速いのであれば、何が引っかかるのでしょうか?広くサポートされていないのでしょうか。何か他の問題があるのでしょうか?
どのように解決するのですか?
MDNでのtextContent/innerText/innerHTMLの違いについて。
そしてinnerText/nodeValueに関するStackoverflowの回答。
概要
- インナーHTML はコンテンツをHTMLとして解析するため、時間がかかります。
- ノード値 はストレートテキストを使用し、HTMLをパースせず、より高速です。
- テキストコンテンツ はストレートテキストを使用し、HTMLをパースせず、より速いです。
- インナーテキスト スタイルを考慮する。例えば隠しテキストは取得しない。
innerText
は Firefox 45 まで Firefox に存在しなかったそうです。
カニース
が、現在ではすべての主要なブラウザでサポートされています。
関連
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] jQueryを使用してdivのinnerHTMLを置き換えるには?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
要素ツリー制御によるvueTreeテーブル
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
jq は html ページとデータを動的に分割する。
-
[解決済み] innerText vs innerHTML vs label vs text vs textContent vs outerText