jqueryについての要約文とタイトルを作成する

このQ&Aのポイント
  • jqueryを使用して、idに番号を割り振る設定の方法について教えてください。
  • jqueryを使用した制作実績の表示方法について教えてください。
  • jqueryの使い方に関する質問です。
回答を見る
  • ベストアンサー

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
  • 回答数2
  • ありがとう数24

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

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

> 回答ありがとうございます。 > 恥ずかしながらソースがこんな感じになってます。 (以下略) それなら、私が挙げたコードがほぼそのまま使えると思います。 アクセスする要素のクラス名を質問者さんのHTML表記にあわせると、 class="navi_mainbox" のひとまとまりを処理単位として、 ---ここから $(function(){ $(".navi_mainbox").each(function(index, elem) { $(".navi a", $(elem)).click(function(){ $(".navi_box img", $(elem)).attr("src",$(this).attr("href")); return false; }); }); }); ---ここまで となります。 処理内容を説明すると、 $(".navi_mainbox").each…: class=navi_mainboxなdiv要素それぞれについて以下の処理を行います。以下、対象のdiv要素は$(elem)でアクセスできる。 $(".navi a", $(elem)).click…: $(elem)要素の下の .navi a 要素に対し、click event を設定 $(".navi_box img", $(elem)).attr…: $(elem)要素の下の .navi_box img 要素に対し、hrefを書き換え という流れになります。 そもそも、他に用途がないなら、idを個別に割り振る必要すらありません。 jQuery からはclassを通したアクセスで処理できます。 あと、誤動作を防ぐためには、処理対象の img や a 要素にclassを割り振った方がいいかと思います。 $(function(){ $(".navi_mainbox").each(function(index, elem) { $("a.navi_source", $(elem)).click(function(){ $("img.navi_target", $(elem)).attr("src",$(this).attr("href")); return false; }); }); }); (略) <img class="navi_target" src="job/052/00000.jpg" alt="サンプルページ01" width="310" height="220" /></div> (略) <li class="navi_img"><a class="navi_source" href="job/052/00000.jpg"><img src="job/052/aaaa.jpg" alt="サンプルページ02" width="100" height="70" /></a></li> (以下略) って感じで。

w_matsuno
質問者

お礼

mtaka2さん できました! 親切で丁寧に対応していただき、ありがとうございます。

その他の回答 (1)

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

navi01~navi99のidを割り振っている要素に、全て同じclassを割り当てておいて、それを元に処理するのが楽だと思います。 ---ここから $(function(){ $(".navi").each(function(index, elem) { $("a", $(elem)).click(function(){ $("img", $(elem)).attr("src",$(this).attr("href")); return false; }); }); }); (略) <div class="navi" id="navi01"><img src=""><a href="test01.jpg">test01.jpg</a></div> <div class="navi" id="navi02"><img src=""><a href="test02.jpg">test02.jpg</a></div> <div class="navi" id="navi03"><img src=""><a href="test03.jpg">test03.jpg</a></div> <div class="navi" id="navi04"><img src=""><a href="test04.jpg">test04.jpg</a></div> <div class="navi" id="navi05"><img src=""><a href="test05.jpg">test05.jpg</a></div> (以下略) ---ここまで といった感じ。

w_matsuno
質問者

補足

回答ありがとうございます。 恥ずかしながらソースがこんな感じになってます。 実績01----------------------------------------------------------------------------------------- <div class="navi_mainbox"> <p class="navi_h1_box"> ○○○株式会社 様</p> <div class="navi_box"> <div id="container"> <div id="main"> <img src="job/052/00000.jpg" alt="サンプルページ01" width="310" height="220" /></div> </div> <div id="navi"> <ul> <li><a href="job/052/00000.jpg"><img src="job/052/aaaa.jpg" alt="サンプルページ01" width="100" height="70" /></a></li> <li class="navi_img"><a href="job/052/00000.jpg"><img src="job/052/aaaa.jpg" alt="サンプルページ02" width="100" height="70" /></a></li> <li class="navi_img"><a href="job/052/00000.jpg"><img src="job/052/aaaaa.jpg" alt="サンプルページ03" width="100" height="70" /></a></li> </ul> </div> </div> <div class="navi_textbox"> <p class="img_gaiyu"><img src="img/img_gaiyu.gif" width="322" height="24" /></p> <table width="322" height="268" cellpadding="0" cellspacing="0" class="table_09 table_09_posi"> <tr> <td>サイト公開日</td> <td>2010年4月</td> </tr> <tr> <td>Webサイト制作目的</td> <td>新規構築</td> </tr> <tr> <td>弊社の対応範囲</td> <td>ディレクション、デザイン<br /> コーディング、保守・運営管理</td> </tr> <tr> <td>Webサイトのページ数</td> <td>9ページ(納品時)</td> </tr> <tr> <td>主な機能</td> <td>FLASH</td> </tr> <tr> <td colspan="2"><span class="navi_url"><img src="img/img_hidari.gif" width="9" height="9" class="img_hidari" /><a href="http://www.aaaaa.jp/">http://www.aaaaa.jp/</a></span></td> </tr> </table> </div> </div> ---------------------------------------------------------------------------------------------- こんな感じのが100実績あります。 <div id="main">が大きな画像で上に1つ <div id="navi">が小さな画像が下に3つ 下の3つの画像をクリックすると上の<div id="main">に表示 ひとつの実績にたいして $(function(){ $("#navi a").click(function(){ $("#main img").attr("src",$(this).attr("href")); return false; }); }); ふたつめは $(function(){ $("#navi02 a").click(function(){ $("#main02 img").attr("src",$(this).attr("href")); return false; }); }); と100個あったら100個必要なのでしょうか? 1ページに8実績載せてpaginationでページ送りをしています。 8個つくって順繰りいきたかってのですが 続く・・・・。

関連するQ&A

  • 【jQuery基本質問】+(プラス)使い方について

    jQueryを基本から勉強しています。そこで、jQueryデザイン入門という本の中で、以下のソースコードが記述されているのすが、+(プラス)の使われ方がどうしても理解できません。テキスト結合ではないでしょうし、、+で囲むことの意味について、教えていただけないでしょうか?またこういう細かいルール?が本には記載されていないのですが、、、何か参考になるサイト等あれば教えていただけると嬉しいです。 ◆ソースコード ※jquery部分のみ抜粋 ※不明点:before内img src内+の使い方 $(function(){ $("#navi a").click(function(){ $("#main img").before("<img src='"+$(this).attr("href")+"' alt=''>"); $("#main img:last").fadeOut("fast",function(){ $(this).remove(); }); return false; }); }); 以上です。 よろしくお願い致します。

  • jQueryの$(this)について

    閲覧ありがとうございます。 初歩的な質問で申し訳ないのですがthisのことがすこし混乱してしまい、わからなくなってしまったので下記の場合のthisはどこを読み込むか教えてもらえると助かります。 目的:aをクリックしたときimgのsrcにaのhrefに指定してあるものを埋め込む処理 $(function(){ $("a").click(function(){ $("ul li img").fadeOut(function(){ $(this).attr(src,$("a").attr("href")).fadeIn(); }); return false; });

  • 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をクリックすると別ページに画像が表示されます。 その場での画像切り替えをしたいのですが、どこが間違っているのでしょうか? 宜しくお願い致します。

  • jQueryの隣接セレクターが上手く動作しない

    jQueryを用いてギャラリーのページを作成しています。 ページのイメージは上部にサムネイル画像が並べてあり、その下にクリックされたサムネイル画像に対応する大きな画像を表示するというものです。その中で隣接セレクターが上手く動作せず悩んでいます。どなたか教えていただきたく、よろしくお願いいたします。 具体的には HTML部分 <\-- サムネイル部分 --> <div id="navi"> <ul> <li> <a href="images/img1.jpg"><imgsrc="images/img1_thum.jpg" alt="作品1" /></a>  </li> : : </ul> </div> <\-- 大きな画像表示部分 --> <div id="main"> <img src="とりあえず最初の作品のパス" alt="最初の作品"/> </div> jQuery部分 $(function(){ $("#navi a").click(function(){ var filename=$(this).attr("href"); var altname=$("+img",this).attr("alt"); : : ここで、filenameには a要素のhref属性の値が入るのですが、altnameが undefined になってしまいます。 私は $("+img",this).attr("alt");  で  this (この場合はa要素)の次のimg要素のalt属性 (たとえば「最初の作品」)が返ると考えているのですがなにが間違っているのでしょうか?

  • JQueryを使ってcssを書き換え

    何となくコードを見てさわる程度の初心者です。 以下のようなソースを組みました。 <div id="slide"> <a href="01.htm"><img src="01.jpg" alt="01" id="alttxt" /></a> </div> <div id="slidenavi"> <ul> <li><a href="01.html"><img src="s_01.jpg" alt="01" class="b_01.jpg" /></a><span class="active"></span></li> <li><a href="02.htm"><img src="s_02.jpg" alt="02" class="b_02.jpg" /></a><span class="active"></span></li> <li><a href="03.html"><img src="s_03.jpg" alt="03" class="b_03.jpg" /></a><span class="active"></span></li> </ul> </div> #slideがメインエリアで、#slidenaviがメインエリアの画像とリンク先を切り替えるナビゲーションボタンになっています。 ナビに連動したメインエリア用の画像ファイル名は #slidenavi の img の classに入れておいて、それを読み込んで代入するというおかしなやり方で呼び出していますが、ここまではうまくいきました。 問題はここからです。 最初の状態では<span class="active"></span>はcssの設定でdisplay: noneとしてあります。 そして#slidenaviのボタンにマウスが乗ると、その部分の<span class="active"></span>をdisplay: blockとして表示したいのですが、これがどうしてもうまくいきません。 この部分も含めて、おかしな書き方になっている部分があれば教えてもらえないでしょうか。 jsファイルは以下の通りです。 $(function(){ $('#slidenavi ul li a').fadeTo(0,0.4); $('#slidenavi ul li a').hover(function(){ $(this).fadeTo(300,1.0); }, function(){ $(this).fadeTo(300,0.4); }) $('#slidenavi ul li img').mouseover(function(){ var bglink = $(this).attr("class"); var altTxt = $(this).attr("alt"); $("#slide img").attr("src","images/home/main/"+bglink); $("#slide img").attr("alt",altTxt); $("#slide span.active").css("display","block"); }); $('#slidenavi ul li a').mouseover(function(){ var Href = $(this).attr('href'); var Tget = $(this).attr('target'); $("#slide a").attr("href", Href); $("#slide a").attr("target", Tget); $("#slide a").click(function() { window.open(Href,'_self'); return false; }); }); });

  • jQuery 記述方法

    今、webサイトを作っていてjQueryを使用しようとしています。 しかし、うまくできません。外部にjavascriptファイルを置いています。 やりたいことは、ナビゲーションのロールオーバーです。 javascriptは初心者なのでどこが間違っているまたは足りないのかわかりません。以下に必要だと思うものを記述しますので分かる方がおりましたら教えてください。 javascriptファイルとjquery-1.6.4.min.jsはhtmlと同フォルダ内にあります。またimgフォルダ内に画像と拡張子の前に_onを付けた画像を入れています。 HTML <head> <script type="text/javascript" src="./jquery-1.6.4.min.js"></script> <script type="text/javascript" src="park.js"></script> </head> <body> <p><a href="index.html"> <img alt="top" height="50" class="navi" src="img/top.gif" width="100" /></a></p> </body> javascript $(function(){ $ ("img.navi").mouseover(function(){ $(this).attr("src",$(this).attr("src") .replace(/^(.+)(¥.{a-z]+)$/,"$1_on$2")); }).mouseout(function(){ $(this).attr("src",$(this).attr("src") .replace(/^(.+)_on(¥.{a-z]+)$/,"$1$2")); }).each(function(){ $("<img>").attr("src",$(this).attr("src") .replace(/^(.+)(¥.{a-z]+)$/,"$1_on$2")); }); ]); です。 よろしくお願いします。

  • jQueryでの記述をjavascriptに

    下記のjQueryの記述をライブラリ無しのjavascriptでの記述にしていただきたいです。 imgタグのsrc属性とaタグのhref属性を相対パスから絶対パスに動的に変換させる必要があるのですが、ある事情でjQueryを使えないとの事で困っています。 どうかよろしくお願い致します。 <script type="text/javascript"> $(function(){ $('#hoge').children('img:not([src^=http])').each(function (){ var imgSrc = $(this).attr('src'); $(this).attr('src','http://xxxxxxxxxxxx' + imgSrc); }); $('#hoge').children('a[href^=○○○]').each(function (){ var aHref = $(this).attr('href'); $(this).attr('href','http://xxxxxxxxxxxx' + aHref); }); }); </script>

  • jQueryでクリックされた要素のidを関数で取得

    以下のようなソースで、クリックされた要素のidをアラートで出したいとき、class: alphabetのa要素ををクリックすると、undefinedと出ます。 関数でthisを使うと呼び出し元のことを指さないので、クリックされた要素のidは出ないということなのですが、こういった場合、クリックされた要素のidを取得して、表示したい場合はどのようにすればよいか教えてください。 [htmlソース] <a class='alphabet' id='a' href='' onclick="return false;">A</a> <a class='alphabet' id='b' href='' onclick="return false;">B</a> <a class='alphabet' id='c' href='' onclick="return false;">C</a> <script src="jquery.min.js"></script> <script type="text/javascript"> $(function(){ $('.alphabet').click(function(){ function alertAlphabet(){ alert($(this).attr('id')); }; alertAlphabet(); }); }); </script>

  • サムネイル画像のclass切替がうまく動かない。

    すみません、jquery初心者です。 下記の様にサムネイルをクリックすると、mainの画像が切り替わる画像ギャラリーを作成しておりまして、 サムネイルをクリックして class="current" を切り替えたいのですが、うまく動きません。 別のサムネイルをクリックすると、最初のclassはremoveされるのですが、 クリックしたサムネイルにclassを付けたいのですが効きません。。 $(document).ready(function() { $(function(){ $('#sum li a').click(function(){ var h = $(this).eq(0).attr('rel'); $('#main img').fadeOut(function(){ ($('#main img').attr("src",h)).fadeIn(); $('#sum li a').removeClass('current'); $(this).addClass('current'); }); return false; }) }); }); <div class="main_area"> <p id="main"><img src="images/img01.jpg" /></p> </div> <ul id="sum" class="clearfix"> <li><a href="#" rel="img01.jpg" class="current"><img src="images/sum01.jpg" /></a></li> <li><a href="#" rel="img02.jpg"><img src="images/sum02.jpg" /></a></li> <li><a href="#" rel="img03.jpg"><img src="images/sum03.jpg" /></a></li> </ul> ご教授頂けると非常に助かります。 よろしくお願いします。

  • jqueryについて(v 1.4.2)

    jqueryについて(v 1.4.2) <script type="text/javascript"> $(function() { $("h1").append('<em></em>') $(".thumbs a").click(function() { var largePath = $(this).attr("href"); var largeAlt = $(this).attr("title"); $(".largeImage").attr({ src: largePath, alt: largeAlt }); $("h1 em").html(" (" + largeAlt + ")"); return false; }); }); </script> 【html↓】 <div> <h1>ギャラリータイトル</h1> <p class="thumbs"> <a href="images/img2-lg.jpg" title="タイトル 2"> <img src="images/img2-thumb.jpg" /> </a> <a href="images/img3-lg.jpg" title="タイトル 3"> <img src="images/img3-thumb.jpg" /> </a> <a href="images/img4-lg.jpg" title="タイトル 4"> <img src="images/img4-thumb.jpg" /> </a> <a href="images/img5-lg.jpg" title="タイトル 5"> <img src="images/img5-thumb.jpg" /> </a> <a href="images/img6-lg.jpg" title="タイトル 6"> <img src="images/img6-thumb.jpg" /> </a> </p> <p><img class="largeImage" src="images/img1-lg.jpg" alt="タイトル 1" /></p> </div> 上記と同じ構造のdivが他にもいくつかあるのですが、個々のdiv全てに同じようにjqueryを 適用したいと思っています。 .each()を使ってみたのですが、.thumbsのaをクリックすると全てのdivの.largeImageが 反応してしまいます。 .click()の前に.each()を記述した場合も、後に記述した場合もうまくいきません。 個々のdivに適用するにはどうすればいいのでしょうか。 .each()を使う事自体が間違っているのでしょうか。 初心者なので分かりやすく教えていただければ幸いです。

    • ベストアンサー
    • AJAX

専門家に質問してみよう