- 締切済み
jqueryのコードについて
$(function () { $("親要素").click(function () { window.location = $(this).find("a").attr("href"); return false; }); }); 上記jqueryのコードで 子要素のリンクを親要素に適用させていますが、 子要素にリンクがない場合も親要素にリンクが適用され クリックすると・・・/undefined にとばされます。 子要素にリンクがない場合は 親要素にリンクを適用しなようにするには どうしたらいいでしょうか。 お願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- AsarKingChang
- ベストアンサー率46% (3467/7474)
なんだぁ。それだけなら、 "親要素 A" だけでいいのでは? つまり、親要素の下にAがある物をセレクタにすればいいだけなのでは。 なので、 <div class="waa"> <div class="waa1"> <div class="waa2"> </div> という構造なら、 .waa .waa1 .waa .waa2 で分けれます。 あくまでwaa要素の中にあるwaa1やwaa2に対して発行してる という具合です。今回はIDやCLASSではなくタグそのものなので、 タグを書けばそれでOK。 console.logなどでリスナーがどう動いたかを確認しておくと 良いかと思います。
- AsarKingChang
- ベストアンサー率46% (3467/7474)
何がしたいのか、いまいちわからないのですが。 undefined が嫌なのであれば、 window.location = $(this).find("a").attr("href"); これを2個にわけて let url=$(this).find("a").attr("href"); これが、undefinedではない時に、 window.location = url; じゃだめですか?
補足
同じ結果でした。 子要素にaタグ要素がない場合は リンクしないようにしたいです。 現状では下記のような場合も親要素にリンクがついてしまいます。 <div class="親要素"> <p>あいう</p> </div> javascriptなど無知なのですが aタグ要素がある場合→実行 aタグ要素がない場合→実行しない みたいなことができますか?
お礼
ありがとうございました