2014-10-28 1 views
-2

Если я пытаюсь использовать оператор if с docoument.getElementById (id) .src == что-то не работает, но когда просто используется document.getElementById(). Src = что-то работает ... I не получайте никакой ошибки или чего-либо, когда я нажимаю на изображение.если инструкция с getElementById не работает

// dice function 
function keepDice(id){ 


//document.getElementById(id).src="diceX1.gif"; <<<<<<<<<< works... 

if(document.getElementById(id).src=="dice1.gif") document.getElementById(id).src="diceX1.gif"; 
else if(document.getElementById(id).src=="dice2.gif") document.getElementById(id).src="diceX2.gif"; 
else if(document.getElementById(id).src=="dice2.gif") document.getElementById(id).src="diceX3.gif"; 
else if(document.getElementById(id).src=="dice3.gif") document.getElementById(id).src="diceX4.gif"; 
else if(document.getElementById(id).src=="dice4.gif") document.getElementById(id).src="diceX5.gif"; 
else if(document.getElementById(id).src=="dice5.gif") document.getElementById(id).src="diceX6.gif"; 

} 

functionfunction roll() 
    { 

    var diceSum=0; 


    if (countClicks()==true){ 
    for(i=0; i<5; i++) 

    { 

    d[i] = Math.floor(Math.random()*6)+1; 
    document.getElementById("d"+i).src="dice"+d[i]+".gif"; 
    diceSum+=d[i]; 

    } 



    if (/1234|2345|3456/.test(d.join("").replace(/(.)\1/,"$1"))) alert("small straight"); 
    else if (/12345|23456/.test(d.join("").replace(/(.)\1/,"$1"))) alert("large straight"); 
    else if (/(.)\1{2}(.)\2|(.)\3(.)\4{2}/.test(d.join("").replace(/(.)\1/,"$1"))) alert("full house"); 

     ofAKindScore=diceSum; 
     document.getElementById("rolls").value=ClickCount; 
     diceSum=0;  
    } 

    for (i = 1; i < 15; i++){ 


     document.getElementById("s"+i).value=''; 
     taken[i]= false; 

     } 


    } 

<div style="border: solid 3px #0000ff"> 
<img id='d0' onClick="keepDice('d0')" src="dice0.gif"> 

<img id='d1' onClick="keepDice('d1')" src="dice0.gif"> 

<img id='d2' onClick="keepDice('d2')" src="dice0.gif"> 

<img id='d3' onclick="keepDice('d3')" src="dice0.gif"> 

<img id='d4' onClick="keepDice('d4')" src="dice0.gif"> 

<p> Rolls Left: <input id='rolls' type='text' value='3' size="3"></p> 
</div> 
+0

Возможно, вы можете использовать 'this' или' event.target', чтобы получить элемент, щелкнув по нему. – Thilo

ответ

3

В if заявления ищут dice1.gif, dice2.gif, dice3.gif и т.д. Но все изображения начинаются как dice0.gif. Код никогда не проверяет dice0.gif.

+0

+1. Естественное следствие кода копирования/вставки. – Thilo

+0

На самом деле у меня есть еще одна функция, которая меняет изображение каждый раз, когда я его запускаю. Который должен менять источник. вот функция – bimm3rBoy

+0

@ bimm3rBoy: Когда вы выберете 'element.src', он вернет полный URL-адрес, поэтому сравнение с локальным путем не будет соответствовать. Вместо этого вы можете проверить, заканчивается ли '.src' * * значением, которое вы сравниваете. –

Смежные вопросы