2012-10-07 34 views
1

我有這個問題的第一部分下來,我能夠從陣列像這樣選擇從陣列中的隨機元素,並檢查其指數

function setImage() 
{ 

var images = ['anemone.gif', 'ball.gif', 'crab.gif', 'fish2.gif', 'gull.gif', 'jellyfish.gif', 'moon.gif', 'sail.gif', 'shell.gif', 'snail.gif', 'sun.gif', 'sunnies.gif', 'whale.gif']; 
var slots = [document.getElementById('slot0'), document.getElementById('slot1'), document.getElementById('slot2')]; 
document.getElementById('slot0').src = images[Math.floor(Math.random() * images.length)]; 
document.getElementById('slot1').src = images[Math.floor(Math.random() * images.length)]; 
document.getElementById('slot2').src = images[Math.floor(Math.random() * images.length)]; 
alert(images.indexOf(document.getElementById('slot2'))); 
} 

選擇一個隨機元素然而,第二行是不會放棄我是元素的正確索引,而且我不確定還有什麼可以找到它?

+0

設定指數'slot2'但'slot0'的報警內容是不是? –

回答

0

不要你的意思是:

alert(images.indexOf(document.getElementById('slot2').src)); 
+0

還有兩個其他插槽(slot0,slot1)也需要相同的處理,警報代碼給出-1作爲所有三個實例中陣列元素的索引。 –

+0

你應該發佈更多的代碼。數組中的圖像是什麼?如果沒有圖像元素在那裏與ID屬性=='slot0'你不會找到它:) –

+0

用整個函數更新了原始問題:) –

1

是否有一個原因,你不只是設置隨機指標到一個變量,只是使用了嗎?

function setImage() 
{ 
    var images = ['anemone.gif', 'ball.gif', 'crab.gif', 'fish2.gif', 'gull.gif', 'jellyfish.gif', 'moon.gif', 'sail.gif', 'shell.gif', 'snail.gif', 'sun.gif','sunnies.gif', 'whale.gif']; 
    var slots = [document.getElementById('slot0'), document.getElementById('slot1'),  document.getElementById('slot2')]; 

    var rnd0 = Math.floor(Math.random() * images.length); 
    var rnd1 = Math.floor(Math.random() * images.length); 
    var rnd2 = Math.floor(Math.random() * images.length); 

    document.getElementById('slot0').src = images[rnd0]; 
    document.getElementById('slot1').src = images[rnd1]; 
    document.getElementById('slot2').src = images[rnd2]; 
    alert(rnd2); 
} 

如果有,你應該嘗試報警圖像的源文件,確保它在格式上的圖像陣列相匹配。

如果您仍然遇到麻煩,請使用html和JS設置jsfiddle,以便我們可以看到發生了什麼。

1

document.getElementById('slot2')會給你指定節點(在這種情況下爲img)。所以你不能在包含src值的數組中找到它。

document.getElementById('slot2').src會給你完整的路徑(如http://....../file.ext),而不僅僅是文件名。使用attributes屬性。

document.getElementById('slot2').attributes["src"]