私は初心者javascript/jquery
なので、この質問がばかげているように聞こえる場合は、ご容赦ください。
このチュートリアルを進めている間、関数のいくつかの変数の値を JavaScript に書き込もうとしたconsole
ので、関数がどのように機能するかをよりよく理解できます。
$(document).ready(function(){
$("div.post h2 a").click(function () {
var a = $(this),
href = a.attr('href'),
content = a.parent().next();
console.log('a='+a);
console.log('a.get(0)='+a.get(0));
console.log('a parent='+a.parent());
console.log('a parent.get(0)='+a.parent().get(0));
console.log("href="+href);
console.log('content='+content);
content.load(href + " #content");
return false;
});
htmlを少し修正しました
<div class="post">
<h2 id="h21"><a href="other/mypage.html">My Page</a></h2>
<div class="content">
Teaser text1...
</div>
</div>
<div class="post">
<h2 id="h22"><a href="other/myotherpage.html">My Other Page</a></h2>
<div class="content">
Teaser text2...
</div>
</div>
});
最初のリンクをクリックすると、このコンソール ログ出力が表示されます
a=[object Object]
a.get(0)=file:///home/me/dev/misc/other/mypage.html
a parent=[object Object]
a parent.get(0)=[object HTMLHeadingElement]
href=other/mypage.html
content=[object Object]
$(this)
関数内の式は、クリックされた要素 (つまり、最初の) になると思い ました。[object Object] と表示されるのはなぜですか。どうなる<a element
かわかりませんでした。a.get(0)
file:///home/me/dev/misc/other/mypage.html
同様に、変数content
は最初のもの div
(Teaser text1 を含む) と同じであるべきではありませんか? [object Object] と表示されるのはなぜですか?