先日回答いただいた内容で分からないことがあったので教えて下さい。
http://jsfiddle.net/6gjfbj9w/
下記は何をやっているのでしょうか?
・thタグノードを自身へ複製?
th = th.cloneNode(true);
■自分の理解
th.appendChild(doc.createTextNode('string'));
→<th>string</th>
th = th.cloneNode(true);
→thタグノードを自身へ複製?
th.firstChild.data = ths[i];
→<th>見出1</th>
tr.appendChild(th);
→<tr><th>見出1</th></tr>
th = th.cloneNode(true);
→thタグノードを自身へ複製?
→<th>見出1</th>?
th.firstChild.data = ths[i];
→<th>見出2</th>
tr.appendChild(th);
→<tr><th>見出1</th><th>見出2</th></tr>
■質問
・下記はなくても良いように思うのですが、コメントアウトすると、期待した動作になりまsたん
・なぜ必要なのでしょうか?
th = th.cloneNode(true);
No.1ベストアンサー
- 回答日時:
> th = th.cloneNode(true);
th要素ノードを複製しています。
https://developer.mozilla.org/ja/docs/Web/API/No …
オブジェクトは参照なので同じオブジェクトを使い回してappendChildしたら要素が移動するだけで複数の要素を生成できません。
createElementから作り直すのが一般的だと思いますが、同じような要素を何度も作るのは無駄なので雛形となるth要素ノードを生成しておき、cloneNodeで複製しています。
---
http://oshiete.goo.ne.jp/qa/8810003.html の件。
> ・innerTextを使用するようにしますー
innerText はIEの独自拡張であり、全てのブラウザで使用できません。
innerTextを実装されている他のブラウザもありますが、標準化されていない為に挙動が同じ保証もありません。
似たプロパティとして textContent がありますが、innerText とは挙動が異なります。
http://d.hatena.ne.jp/cou929_la/20110517/1305644 …
代入する分には textContent, innerText を使い分ければ問題ないかもしれませんが、仕様を追ってないので私からはお勧めできないですね。
IE8- を保証するなら createTextNode が最も無難な選択肢だと思います。
何度か仕様にまつわる質問をされていると思いますが、調べ方を工夫してみて下さい。
仕様のURLをブックマークしておくとか、Google検索でサイト検索してみるとか。
innerTextの件は少し検索すれば分かると思うのですが、おそらくまともに調べていないのではないでしょうか。
http://www.quirksmode.org/dom/html/
https://developer.mozilla.org/ja/docs/Web/API/No …
http://msdn.microsoft.com/en-us/library/ie/ms533 …
# Re: re97さん
回答ありがとうございました。
>オブジェクトは参照なので同じオブジェクトを使い回してappendChildしたら要素が移動するだけ
・参考になりました
>W3C DOM Compatibility - HTML
・このページ初めて知りました
・見やすいですね
>標準化されていない為に挙動が同じ保証もありません
・メソッド毎にブラウザ対応状況を確認していく癖をつけた方が良いなと思いました
>innerTextの件は少し検索すれば分かると思うのですが
・標準的な処理だと思い込んでました…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- 工学 エジプトやマヤのピラミッド構造物は宇宙という未知の領域への推進機構をデザイン化・神格化したもの? 2 2022/11/01 05:05
- 地理学 映画『ガメラ対ゴジラ』は国際社会VSロシア連邦といった世界的危機の到来を予測していたのかもね? 2 2022/04/10 12:52
- その他(アウトドア) この舟はどうやって乗るのですか? 6 2022/03/27 09:14
- 作詞・作曲 中森明菜『ミ・アモーレ』の歌詞では、ISAS打ち上げの小惑星探査機ハヤブサの数奇な運命を暗示してる? 2 2022/11/18 19:51
- 洋画 映画『ヘルレイザー』(2022年)の最新作は勿論露国プーチン大統領。ウクライナ戦争を題材に構成? 1 2022/11/19 16:37
- テレビ テレビの買い替えを検討しています。(PanasonicのVIERAのTH-55JZ1000) 3 2022/06/12 17:02
- テレビ Panasonicの有機elテレビのVIERAのTH-55JZ1000について質問です。 3 2022/06/20 17:10
- 写真 ソニーα7R 初代にα7R(ILCE-7R❩に 下記レンズつけられますか SIGMA 30mm F1 1 2023/07/22 20:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
読み込んだQRコードをフォーム...
-
特定の文字列を複数抜き出した...
-
出発駅A、到着駅Bを選択すると...
-
HTMLで作った時報アプリが動き...
-
画面遷移を行わずに同一ページ...
-
jsで、switch文で書かれた分をi...
-
①入力フォーム→②確認表示画面→③...
-
IndexedDB を使ってファイルア...
-
React hooksが値を返して配列変...
-
jsで質問です。 displayプロパ...
-
HTMLタグに複数のクラスを設定...
-
二次元配列の中の各行の要素を...
-
GASに文字列として関数を入れる...
-
フロントエンドフレームワーク...
-
オブジェクトから任意のプロパ...
-
セレクトボックスを2つ設けて選...
-
指定時間になったら、WEBサイト...
-
変数名をどのようにつけるのが...
-
disabled プロパティが表示され...
-
Colorboxがうまく設置できません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アコーディオンメニューにする...
-
iText セル内での自動改行について
-
【jQuery】MixltUPの複数フィル...
-
或る文字列の文字数が一定数以...
-
jtreeのノードを右クリックで選...
-
JS node.childNodesの仕様について
-
Preorder Tree Walkとは
-
URL+URN=URI と習ったのですが...
-
jQuery UIのDroppableにて
-
script.aculo.usのDroppablesに...
-
こんばんは。 メガメニューを今...
-
DOMを使ったテキストノードの繰...
-
HTMLでのテキストエリアで入力...
-
Aタグのhrefの値を取得したいの...
-
既存のXMLを別のXMLの要素とし...
-
JTextAreaを改行コードを直接書...
-
新しいパソコンのネット設定な...
-
(再質問)エクセルのマクロボ...
-
collection型を引数にしたファ...
-
コンソール画面のクリアの方法
おすすめ情報