人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

jQueryを勉強しています。下記のようなコードを書いており、イメージとしてはpppStringをslideUp()させたいのですが動きません。文法が間違っているのでしょうか?

<p id ="p1">p1String
<p class ="ppp">
pppString
</p>
</p>

-----------------------

$(function(){
$("#p1").click(function(){
var obj1 = $(".ppp", this);
obj1.slideUp();
});
});

●質問者: koime_ryokutya
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Lhankor_Mhy
ベストアンサー

ブラウザによってはそのままでも動作しそうな気がしますが、

<p id ="p1">

<div id ="p1">

に変えれば動作すると思います。


a-kuma3さんのコメント
これ、理由が分かりますか? >Lhankor_Mhy さん click() の中で呼んでいる jQuery 関数の context が HTMLParagraphElement だと うまく動かないらしい、というのは、動作を確かめてみて分かったんですけど、 どうしてうまく動かないのかが、よく分からなくって。

Lhankor_Mhyさんのコメント
自分はそこまで確認してませんでした。 たぶん、p要素が内部にブロック要素を持たないのがHTMLの仕様だからではないかと。おそらく、document.getElementById('p1').childNodes を見るとテキストノードしかもっていないと思います。 ただ、HTMLからのDOM解釈によると思うので、「ブラウザによっては」と回答した次第です。

koime_ryokutyaさんのコメント
動作しました!うーん、奥が深いですね。。ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ