- ベストアンサー
オブジェクトについて
http://homepage1.nifty.com/kodayan/javasc/syntax/this02.htm ここのHPにthisについての説明があるのですが いまいちわかりません。 <p id="p_id" class="p_class" style="cursor:hand" onclick="Test(this);">[ここをクリックすれば]</p> thisはタグ自身を参照すると書かれていますが この場合は<p>タグを参照しているのでしょうか? (それとも[ここをクリックすれば]という文字列オブジェクトを指しているのでしょうか?) また『thisはオブジェクトを指す』ととある本に書いてあったので もし<p>タグを指すとしたらタグもオブジェクトなのでしょうか? (タグがオブジェクトというのはピンときませんが) いろいろ質問してしまいましたが答えられる範囲 でけっこうですのでよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2><p></p>のように間に何もない場合もオブジェクトになるのでしょうか? なります。 何もなかったら、オブジェクトを作成しないというようなブラウザもありなのかもしれませんが、、(^^; 参考URL(質問者が参考としてあげられているURLのことです)でも <span></span> のようになっていて、その内容を後からスクリプトで入れていますよね。 中味のないタグがオブジェクトとして作成されないのであれば、こういうことはできませんね。
その他の回答 (4)
タグの内容を、オブジェクト「として処理する」「として扱う」ということです。 どういうことかは、No.3さんのおっしゃる通り、DOMを勉強してみるといいと思います。
お礼
ご回答ありがとうございます。 DOMはまだ少しかじった程度ですので勉強してみようと思います。
- talepanda
- ベストアンサー率58% (45/77)
興味があればDOM(Document Object Model)を勉強してみてください。
お礼
アドバイスありがとうございます。 DOMも並列して勉強しようと思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
それぞれのタグは、ブラウザで読み込まれて解析されて 階層的な同等なオブジェクトで内部的に表現してそれを ブラウザ上で描画して表示しています。 この場合、<p>~</p> は、それに該当するp オブジェクトとして内部的に保持されているということです。 <p id="p_id" class="p_class" style="cursor:hand" onclick="Test(this);"> のような場合の this は、この(p)オブジェクト自身を表すことになり、呼び出される関数に自分自身(p)を渡すという指定になります。 [ここをクリックすれば] の部分は、この場合(参考URL)で言えば、 obj.innerText か obj.innerHTML で保持されています。(別の見方で言えば、pオブジェクトの子要素のテキストノード)
お礼
ご回答ありがとうございます。 詳しいご説明でだいぶ分かりました。 (pオブジェクトの子要素のテキストノード)この言葉が非常に分かりやすかったです。 ここでふと思ったのですが<p></p>のように間に何もない場合も オブジェクトになるのでしょうか? 最後に間違っていたらすいませんが参考URLとは私が提示しているURL のことでしょうか? 回答欄の参考URLは空白のようなので
HTML における JavaScript に関しては,ほとんど素人ですが, 答えられる範囲で…・・・ タグも1つのオブジェクトでしょう。 「HTML タグオブジェクトのプロパティとメソッド」 (Dreamweaver の ヘルプ) http://livedocs.macromedia.com/dreamweaver/8_jp/extending/06_dw_d6.htm ---引用--- > HTML タグオブジェクトのプロパティとメソッド > HTML タグはすべて JavaScript オブジェクトによって表されます。 > タグはツリー階層で編成されます。 > y が x の開始タグと終了タグに完全に囲まれている場合 > (<x>x の内容 <y>y の内容 </y>x の内容の続き </x>)、 > x タグは y タグの親となります。 > したがって、コードを適切に構成する必要があります。 上の URL が全てを言っていると思いますが, ためしに実験したみました。 まず, ご質問で書かれている URL の Pタグを次のように書き換えてみました。 <p id="p_id" class="p_class" style="cursor:hand" onclick="alert(this);">[ここをクリックすれば]</p> ↓表示結果↓ [object] 次のように書き換えると, <p onclick="alert(this.tagName);">[ここをクリックすれば]</p> ↓表示結果↓ P Pタグだけでは何なので, そのPタグの下あたりに次の行を書き加えました。 <A HREF="javascript:alert(this)">[ここもクリックすれば]</A> ↓表示結果↓ [object] 次のようにすると, <A onclick="javascript:alert(this.tagName);">[ここもクリックすれば]</A> ↓表示結果↓ A やはり < > 内も1つのオブジェクトです。
お礼
ご回答ありがとうございます いろいろ実験もしていただいてありがとうございました。 タグもオブジェクトだということですね。
お礼
再度のご回答ありがとうございます。 なるほど中身がなくてもオブジェクトになるんですね。 これですっきりしました。 参考URLは私の勘違いだったようですいませんでした(^^;)