![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
以前から気になっていたけれど聞かなかったこと。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>QFUMEI テストケース1</title>
<script type="application/ecmascript">
function init(){
var hoge = document.getElementById("hoge");
var fuga = document.getElementById("fuga");
hoge.removeChild(fuga);
alert(fuga); // [object HTMLParagraphElement] ← nullではない
fuga = document.getElementById("fuga");
alert(fuga); // null
}
</script>
</head>
<body onload="init();">
<div id="hoge">
<p id="fuga">ほげ</p>
</div>
</body>
</html>
結局
fuga = getElementById("fuga")によって
何が代入されているのでしょう?
document上のp#fugaへの参照であれば
removeChildの直後
fuga = nullとなっていてもよさそうだなと思っているのですが・・・・。
hoge.firstChild.nodeValueをいじるとp要素内の文字列が変化するし・・・・
No.1ベストアンサー
- 回答日時:
documentに入ってないだけで、メモリ内には残っています。
removeChildした後は、documentから参照出来るかどうか、という違いですね。
//removeChildとは全く逆のパターン、appendChild
var p=document.createElement('P');
p.id='foo';
var foo=p;
alert(foo); //[object]
foo=document.getElementById('foo');
alert(foo); //null
document.body.appendChild(p);
foo=document.getElementById('foo');
alert(foo); //[object]
> hoge.firstChild.nodeValueをいじるとp要素内の文字列が変化するし・・・・
状況がちょっとわかりませんが、
<div><p></p></div>
と
<div>
<p></p>
</div>
の場合の、div.firstChildは違います。
2つめのは改行が入ってるので、firstChildは匿名のテキストノードになります。
ブラウザのバグかどうかまではわかりませんが。。。
hoge.removeChild(fuga);
hoge.firstChild.nodeValue='hoge';
document.body.appendChild(fuga);
とするとどうなります?
改行を入れてなかったらhoge.firstChildはnull(スクリプトエラー)になり、
改行を入れていると、最終的には
<div id="hoge">hoge</div>
<p id="fuga">ほげ</p>
となると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- ASP・SaaS FC2 BLOG <AUDIO TAGを入れプレビューはOk テーンプレートを更新すると ✖ 1 2023/08/14 11:40
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サブウインドウから親ウインド...
-
window.onloadでのfunction
-
Linux バイナリ実行できない "...
-
awk内でsystem関数を使用しfunc...
-
VB.NETで変数の型は自作...
-
サンプルによく出てくるhogehog...
-
window.onload=の関数呼出で()...
-
-(ハイフン)_(アンダーバー)の...
-
ASP+アクセスでのSQLコメントに...
-
同じ型【ハイフンと数字】だけ...
-
IEで文字の色が取得したい
-
Excel VBA の ChangeFileAccess
-
「オブジェクトが必要です。」...
-
Perlから送信するメールのヘッ...
-
エクセルでブラウザへのフォー...
-
『名前空間』の意味を教えてく...
-
Option Strictと構造体とArrayL...
-
Vb.netのグローバル変数の宣言...
-
引数付きコンストラクタでコン...
-
C#で、変数の値から「”」を取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
ボタンをクリックすると数が増...
-
【正規表現】【javascript】CR...
-
【Jquery】changeイベント毎にa...
-
「オブジェクトが必要です。」...
-
Excel VBA の ChangeFileAccess
-
Vb.netのグローバル変数の宣言...
-
MFCのキャプション変更
-
onclick指定関数の引数へローカ...
-
同じ型【ハイフンと数字】だけ...
-
static constメンバ変数(配列)...
-
javascriptで文字挿入でtoggle...
-
サブウインドウから親ウインド...
-
URLの一部をコピーできるブック...
-
window.onloadでのfunction
-
Javascriptグローバル変数の値...
-
複数ファイルで使うグローバル...
-
全部のアクセスを指定したペー...
おすすめ情報