jQuery で、P 要素を取得する
<p> <label class="label01"> <input type="radio" name="radio1" id="radio" value="radio1" />1 </label> <label class="label02"> <input type="radio" name="radio1" id="radio2" value="radio2" />2 </label> </p> <script> if ($("#radio").checked) { // ※ $("#radio") が undefined になる! ... } </script>
Selector に ID を指定してるのに、なんで見つからないんだ、ってしばし悩む。
<p id ="p1">p1String <p class ="ppp"> pppString </p> </p> <script> $(function(){ $("#p1").click(function(){ var obj1 = $(".ppp", this); // ★ここで、<P> が返ってこない! obj1.slideUp(); }); }); </script>
click() の中で呼んでいる jQuery 関数の第二引数 context が P 要素 (HTMLParagraphElement) だとうまく動かないらしい。
document なんかを context に指定すると、期待したとおりに動作する。
(Lhankor_Mhy)たぶん、p要素が内部にブロック要素を持たないのがHTMLの仕様だからではないかと。おそらく、document.getElementById('p1').childNodes を見るとテキストノードしかもっていないと思います。
Selector にクラス指定をしたときには、find だったかが DOM をたどって探しにいくから見つからないんだろうなあ。
でも、ID を指定したときには、getElementById() を使ってるんじゃなかったかなあ...
きっと、また同じことで悩むんだろうなあ ><