jQueryでdivごとリンクする方法を解説

このQ&Aのポイント
  • jQueryを使用してdivごとにリンクする方法について解説します。新しいウィンドウで開く要素と同じウィンドウで開く要素を分ける方法を説明します。
  • 具体的なコード例を示します。
  • 問題が発生している箇所と解決策についても説明します。
回答を見る
  • ベストアンサー

jQueryでdivごとリンクする際の開き方の指定

jQueryでdivごとリンクする際に 新しいウィンドウで開くものと、同じウィンドウで開くものを分けたいのです。 下にコードを載せています。 素人なりにおかしいかと思っている点は、 同じfunction()を続けて使っているところです。 2つのスクリプトをそれぞれ1つだけ書いた時はうまく動作します。 どのように書いたらよいでしょうか? よろしくお願いいたします。 ●新しいウィンドウで開きたいdiv要素 aaa,bbb,ccc ●同じウインドウで開きたいdiv要素 ddd,eee ------------------------------------------- <script type="text/javascript"> $(function(){ $(".aaa,.bbb,.ccc").click(function(){ window.open ( $(this).find('a').attr('href'), 'newwin' ); return false; }); }); </script> <script type="text/javascript"> $(function(){ $(".ddd,.eee").click(function(){ window.open ( $(this).find('a').attr('href'); return false; }); }); </script> -------------------------------------------

  • golf90
  • お礼率55% (878/1594)

質問者が選んだベストアンサー

  • ベストアンサー
  • warpspace
  • ベストアンサー率56% (83/147)
回答No.3

>どちらも新しいウィンドウで開いてしまいます…。 window.openの'newwin'は単にウィンドウ名のようで、この指定の有無にかかわらず 別ウィンドウで開きます。 同じウィンドウで開き場合は、location.hrefを使う必要があるようです。 (構文のチェックだけで、ロジックを十分に確認していなかったので、 すぐに気が付きませんでした。ごめんなさい)

参考URL:
http://www.shurey.com/js/labo/nopref.html
golf90
質問者

お礼

そうなんですね。 色々教えていただきありがとうございました。 勉強になりました。

その他の回答 (2)

  • warpspace
  • ベストアンサー率56% (83/147)
回答No.2

最後のカッコが足らないのでシンタックス・エラーになっていますね。 window.open ( $(this).find('a').attr('href');           ↓ window.open ( $(this).find('a').attr('href'));

golf90
質問者

補足

ありがとうございました。 早速カッコを付けてみたところ、リンクは開くようになったのですが、 今度はどちらも新しいウィンドウで開いてしまいます…。 やはり、無理なのでしょうかね。

  • warpspace
  • ベストアンサー率56% (83/147)
回答No.1

下記でうまく動作すると思います。 <script type="text/javascript"> $(function(){  $(".aaa,.bbb,.ccc").click(function(){   window.open ( $(this).find('a').attr('href'), 'newwin' );   return false;  });  $(".ddd,.eee").click(function(){   window.open ( $(this).find('a').attr('href');   return false;  }); }); </script> ダメでしたら下記をお試しください。 $(function(){ → $(document).ready(function(){

golf90
質問者

補足

ご回答ありがとうございました。 教えていただいたコードで試してみましたが、 クリックしても反応がなくなってしまいました。 $(function(){ → $(document).ready(function(){ でも駄目でした・・・。

関連するQ&A

  • jQueryでdivをクリックし別窓で開くには?

    jQueryでdiv全体をクリックできるようにできたのですが、 どうしても別窓で開く方法が分かりません。 もう、5時間ほど調べましたが、うまくいきません。 どなたか下のコードが別窓で開くように修正していただけませんでしょうか? よろしくお願いいたします。 <script type="text/javascript"> $(function(){ $(".sample").click(function(){ window.location=$(this).find("a").attr("href"); return false; }); }); </script>

  • JavaScriptコードの最適化

    JavaScript、超初心者です。 よくわからないので、同じコード3つ書いています。 もっと簡単に最適化されたコードはどう書けばよいですか? 宜しくお願いします。 $(function () { $(".aaa").click(function(){ window.open($(this).find("a").attr("href"), '_blank'); return false; }); $(".bbb").click(function(){ window.open($(this).find("a").attr("href"), '_blank'); return false; }); $(".ccc").click(function(){ window.open($(this).find("a").attr("href"), '_blank'); return false; }); });

  • jqueryについて

    jqueryについて こんな内容のjqueryをひとつにまとめて、なおかつ01~99(実績数)までのidを割り振る設定したいのですが可能でしょうか? 例えば $(function(){ $("#navi01-99 a").click(function(){ $("#main01-99 img").attr("src",$(this).attr("href")); return false; }); みたいな感じであとはidに番号を付ければいいみたいな・・・出来ませんでしょうか? 用途は仕事の制作実績で使用したいのですが、どなたか教えていただけますでしょうか? $(function(){ $("#navi01 a").click(function(){ $("#main01 img").attr("src",$(this).attr("href")); return false; }); }); $(function(){ $("#navi02 a").click(function(){ $("#main02 img").attr("src",$(this).attr("href")); return false; }); }); $(function(){ $("#navi03 a").click(function(){ $("#main03 img").attr("src",$(this).attr("href")); return false; }); }); $(function(){ $("#navi04 a").click(function(){ $("#main04 img").attr("src",$(this).attr("href")); return false; }); }); $(function(){ $("#navi05 a").click(function(){ $("#main05 img").attr("src",$(this).attr("href")); return false; }); });

    • ベストアンサー
    • AJAX
  • jqueryについて【初歩】

    見ていただきありがとうございます。 jqueryについて初歩的な質問です。 下記の記述は ひとつのボックスに対して内包するaタグのリンクを指定してボックスごとリンクにしているスクリプトになりますが、これにtargetの属性を付加させたいです。 しかしいろいろ試しましたがうまくいかず、ツンでます… jqueryに精通している方宜しければご回答いただけませんでしょうか? よろしくお願いいたします。 $(function(){ $(".sampleBox").click(function(){ window.location=$(this).find("a").attr("href"); return false; }); });

  • jQueryの繰り返し

    下記のようなスクリプトで.cccと.ddd、.eeeと.fffにも同じ処理を適用したいです。 繰り返し処理のようなことができればシンプルなコードで書けると思うのですがやり方がわかりません。 キレイな書き方を教えていただけないでしょうか。 宜しくお願いします。 //スクリプト $(function(){ var $value1 = $('.aaa'); var $value2 = $('.bbb'); 処理内容 });

  • 【js】attrで属性を取得するとき・・・

    js初心者です。 div全体をクリックしてリンクできるようにしたいと思い、下記ソースを書いています。 (js) <script type="text/javascript"> $(function(){ $(".go_content").click(function(){ window.location=$(this).find("a").attr("href"); return false; }); }); </script> (html) <div class="go_content"> テキストが入りますテキストが入ります。 <a href="http://xxxxxxx" target="_top" ></a> </div> これで、通常なら思ったとおりに動作してくれます。 しかし、このソースはあるページのなかにiframeで表示させます。 なので、<a>にtarget="_top"を指定しています。 上記スクリプトのままだと、aのhref属性しか取得できずに、フレーム内でリンクしてしまいます。 一緒にtarget属性も取得するにはどうすればよいのでしょうか? 何か良い方法があれば教えてください。 よろしくお願いします。

  • jQuery膨らむボタン。同一ウィンドウにリンク

    http://jquery.malsup.com/hoverpulse/anchor.html ↑これを参考にjQueryでマウスを上にのせると膨らむボタンを作ったのですがクリックするとリンク先が別タブで開かれてしまいます。 同一のウィンドウ(HTMLでいうTARGET="_self")でリンク先を表示させたいのですがどうしたらいいですか? $(document).ready(function() { $('div.thumb img').hoverpulse().each(function() { var $img = $(this); var link = $img.attr('data-link'); $img.attr('title','Goto: ' + link); $img.click(function() { window.open(link); return false; }); }); }); <div id="thumbs"><div class="thumb"> <img src="img.jpg" data-link="http://google.com" /> </div></div>

  • jqueryのコードについて

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

  • jqueryの質問。

    毎回、お世話になります。 jqueryを使ってリンク文字をクリックすると画像が変更できるようにしたいのですが、 上手くいきません。 <HTML> <body> <ul> <li><a href="DSC_0014.jpg">a</a></li> <li><a href="kamen.jpg">b</a></li> <li><a href="irumi.jpg">c</a></li> </ul> <p><img src="DSC_0014.jpg" width="1000" height="671"> <SCRIPT> $(function(){ ("a:eq(0)").click(function(){ $("img").attr("src","DSC_0014.jpg").attr("alt","人物"); return false }); $("a:eq(1)").click(function(){ $("img").attr("src","kamen.jpg").attr("alt","仮面"); return false }); $("a:eq(2)").click(function(){ $("img").attr("src","irumi.jpg").attr("alt","イルミ"); return false }); }); このコードだとリストa,b,cをクリックすると別ページに画像が表示されます。 その場での画像切り替えをしたいのですが、どこが間違っているのでしょうか? 宜しくお願い致します。

  • 文章中のファイルリンクを置換したい

    文章をjavascriptで読み込み、 以下のような文章のなかに埋まっているファイルリンクの文字を 置換してあげたいのですが、正規表現で表現しきれないでしょうか? ■例: ---以下文章---- あああああ いいいいい \\AAA\BBB\CCC ううううううう \\CCC\DDD\EEE えええええ --------------- とあった時に、下記のようにしたいと考えています。 --------------- あああああ いいいいい <a href="file:////AAA/BBB/CCC">\\AAA\BBB\CCC</a> ううううううう <a href="file:////DDD/EEE/FFF">\\DDD\EEE\FFF</a> えええええ --------------- 今考えている限りだとは\\までを含む文章まではマッチさせて、 リプレースできるのですが、 文章の中の\を/に置き換える方法が思いつきません。 ■私の頭の限界の正規表現だけだと下記までしか思いつきませんでした。 str.replace ( /(\\\\[^ \s\:\*\?\"\<\>\|\#\{\}\%\&\~]+)/gi , <a href=\"file:\/\/$&\">$&<\/a>)> どなたか思いつくことありましたらお知恵をかしていただけないでしょうか。

専門家に質問してみよう