0

私は2つのボタンを持っています。ボタンごとに異なる配列が表示されます。画像をリロードする最初に戻りたいと言う以外は、すべてうまくいきます。ボタンを初めてクリックすると、6 つの画像が表示されます。2 回目の todal は 12 などです。これが起こらないようにする方法はありますか?オンラインで何も見つからないようです。

var picArray1 = new Array("concert1","concert2","concert3","concert4","concert5","concert6");
var picArray2 = new Array("out1","out2","out3","out4","out5","out6");


function showArray1() {
        var imgDiv = document.getElementById("gallery")
        for(i=0; i<picArray1.length; i++){
            document.getElementById("text1").innerHTML += '<img src="images/'+picArray1[i]+'.jpg">';
            document.getElementById("text2").style.display = 'none';
            document.getElementById("text1").style.display = 'block';
        }
    }

function showArray2() {
        var imgDiv = document.getElementById("gallery")
        for(i=0; i<picArray2.length; i++){
            document.getElementById("text2").innerHTML += '<img src="images/'+picArray2[i]+'.jpg">';
            document.getElementById("text1").style.display = 'none';
            document.getElementById("text2").style.display = 'block';

        }
    }
4

1 に答える 1

0

因数分解をしましょう:

function show(list,galleryId,text1Id,text2Id) {
        var imgDiv = document.getElementById(galleryId)
        var text1 = document.getElementById(text1Id);
        var text2 = document.getElementById(text2Id);
        text2.innerHTML = "" // important part
        for(i=0; i<list.length; i++){
            text2.innerHTML += '<img src="images/'+list[i]+'.jpg">';
            text1.style.display = 'none';
            text2.style.display = 'block';

        }
    }
// call the function
show(['image1','image2','image3'],"gallery","text1","text2")
// not sure why you are getting imgDiv though since you are not using it.
于 2012-11-09T01:09:57.183 に答える