• 締切済み

jqueryのコードについて

$(function () { $("親要素").click(function () { window.location = $(this).find("a").attr("href"); return false; }); }); 上記jqueryのコードで 子要素のリンクを親要素に適用させていますが、 子要素にリンクがない場合も親要素にリンクが適用され クリックすると・・・/undefined にとばされます。 子要素にリンクがない場合は 親要素にリンクを適用しなようにするには どうしたらいいでしょうか。 お願いいたします。

みんなの回答

回答No.2

なんだぁ。それだけなら、 "親要素 A" だけでいいのでは? つまり、親要素の下にAがある物をセレクタにすればいいだけなのでは。 なので、 <div class="waa"> <div class="waa1"> <div class="waa2"> </div> という構造なら、 .waa .waa1 .waa .waa2 で分けれます。 あくまでwaa要素の中にあるwaa1やwaa2に対して発行してる という具合です。今回はIDやCLASSではなくタグそのものなので、 タグを書けばそれでOK。 console.logなどでリスナーがどう動いたかを確認しておくと 良いかと思います。

noname#249922
質問者

お礼

ありがとうございました

回答No.1

何がしたいのか、いまいちわからないのですが。 undefined が嫌なのであれば、  window.location = $(this).find("a").attr("href"); これを2個にわけて  let url=$(this).find("a").attr("href"); これが、undefinedではない時に、  window.location = url; じゃだめですか?

noname#249922
質問者

補足

同じ結果でした。 子要素にaタグ要素がない場合は リンクしないようにしたいです。 現状では下記のような場合も親要素にリンクがついてしまいます。 <div class="親要素"> <p>あいう</p> </div> javascriptなど無知なのですが aタグ要素がある場合→実行 aタグ要素がない場合→実行しない みたいなことができますか?

関連するQ&A