2011-04-19 5 views
0

サムネイル(小さな画像)のブロックがあるページがあり、小さな画像をクリックしたときに画像のより大きなバージョンが表示されます。どちらのファイルも同じ名前ですが、異なるフォルダにあります。問題は、サムネイルがforループを使用してランダムに生成されることです。ここで私は(のonclick)に取り組んでいますスクリプトです:ここではJS:ランダムに割り当てられたimg属性にアクセスする

function seeFoto(that){ 
document.getElementById("photoViewer").style.zIndex="1"; 
document.getElementById("gallery").style.zIndex="0"; 
document.getElementById("bigpic").src=.../// <<-- problem: how do I get the source of the thumbnail and then replace "bigpic" with other version of the image?? 

は、各セルにランダムに画像を割り当てスクリプトは、(それが動作する)である:

function randomThumbs(){ 
swapp(); 
var onecell="1"; 
for (onecell=1; onecell<33; onecell++){ 
var duh=Math.ceil(Math.random()*802); 
document.getElementById("img" +onecell).setAttribute("src","thumbs/"+duh+".jpg"); 
}} 

swapp()はランダム関数であります2つのセルを選択し、ピクチャを別のランダムなピクチャに変更する。 HTMLコード:

<td><a id="link1" href="page.html" <img id="img1" src="thumbs/1.jpg" onclick="seeFoto(this)" /></a></td> 
<td><a id="link2" href="page.html" <img id="img2" src="thumbs/2.jpg" onclick="seeFoto(this)" /></a></td> 

は私の質問は十分に明確であるホープ... ありがとう! onecell = "1" と思う

+0

'VAR;'なぜ文字列...なぜ?それ以外に。それを2回初期化する必要はありません。関数の最初の段階では、この場所の 'var i'は絶対に' var i'と同じですが、一般的な方法は 'for(var i = 0; i ThiefMaster

+0

@ThiefMasterそれは1の周りの引用符なしで動作しませんでした。 – Ishikawa

+0

私はあなたに全体のコードを読んでいないので、より多くの問題があるかどうか分かりませんでした(私の変更提案は無用なコードを取り除くだけでした)私はちょうどこれに気づいたし、良い/クリーンなコードを書くことは常に良いことだからあなたに伝えたいと思った。 – ThiefMaster

答えて

0
document.getElementById("bigpic").src = that.src.replace('thumbs/', 'bigimages/'); 

... :-)

+0

良いアイデア!しかし、それはエラーをスローします: "that"は定義されていません – Ishikawa

+0

btw。あなたのa要素に ">"を追加してください – kempsam

+0

これは今動作します。どうもありがとうございます :) – Ishikawa

関連する問題