• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スワップイメージ+リンクの変更)

スワップイメージ+リンクの変更

このQ&Aのポイント
  • テーブル内の画像とリンクをスワップするJavaScriptを探しています。
  • 画像とリンクが同時に変更されるスワップ機能が必要です。
  • イメージとリンクが同期してスワップされるJavaScriptをお探しです。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

じゃ、データを隠しておいておいて、それをひっぱってきましょうか <script> window.onload=function(){ var tags=document.getElementsByTagName("img"); for(var i=0;i<tags.length;i++){ var cn=tags[i].className; if(cn!=""){ var img=document.getElementById(cn); if(img){ tags[i].img=img; hideimg=tags[i].nextSibling; while(hideimg){ if(hideimg.className=="hide") break; hideimg=hideimg.nextSibling; } tags[i].hideimg=hideimg; tags[i].onmouseover=function(){ this.img.src=this.hideimg.src; this.img.parentNode.href=this.parentNode.href; }; } } } } </script> <style> .hide{ display:none; } </style> <table> <tr> <td rowspan="3"><a href="hoge.html"><img src="hoge.jpg" id="swap1"></a></td> <td><a href="a.html"><img src="a.jpg" class="swap1"><img src="a-hoge.jpg" class="hide"></a></td></tr> <tr><td><a href="b.html"><img src="b.jpg" class="swap1"><img src="b-hoge.jpg" class="hide"></a></td></tr> <tr><td><a href="c.html"><img src="c.jpg" class="swap1"><img src="c-hoge.jpg" class="hide"></a></td></tr> </table>

bilateraria165
質問者

お礼

ありがとうございます!! 思っていたのとまったく同じものになりました!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

どのくらい汎用性が必要かわからないのである程度調整しておきました hoge側のidと選ぶ側のclassを同じものを付けると動きます。 <script> window.onload=function(){ var tags=document.getElementsByTagName("img"); for(var i=0;i<tags.length;i++){ var cn=tags[i].className; if(cn!=""){ var img=document.getElementById(cn); if(img){ tags[i].img=img; tags[i].onmouseover=function(){ this.img.src=this.src; this.img.parentNode.href=this.parentNode.href; }; } } } } </script> <table> <tr> <td rowspan="3"><a href="hoge.html"><img src="hoge.jpg" id="swap1"></a></td> <td><a href="a.html"><img src="a.jpg" class="swap1"></a></td> </tr> <tr><td><a href="b.html"><img src="b.jpg" class="swap1"></a></td></tr> <tr><td><a href="c.html"><img src="c.jpg" class="swap1"></a></td></tr> </table>

bilateraria165
質問者

補足

早速のお返事ありがとうございます!! ただ、ちょっとこちらの質問に不備がありました。 上の例でhoge.jpgが300x225、abcが200x75というサイズを持っていて、すき間の無いテーブルの中に置かれている状況です。 (abcが右側の縦に3つ並んで、左にhoge.jpgがある) このとき、例えばa.jpgにマウスオーバーすると、hoge.jpgと「同じ大きさの画像(a-hoge.jpgとします)がhoge.jpgのエリアに表示され」かつ「リンクもhoge.htmlからa.htmlに変更される」というようなjavascriptにしたいのです。 質問が言葉足らずで申し訳ありません。 なにとぞよろしくお願いします。