2017-02-17 122 views
0

我在做一個只使用JavaScript HTML和CSS的hang子手遊戲。 在我的一個函數中,我嘗試使用名爲value_的span屬性。 當程序到達這一點時,它只運行一次。當我點擊另一封信時,它什麼也沒做。如果我將getAttribute行放在註釋中,則該函數隨時可以運行,只需點擊一個字母即可。 任何想法? :\javascript getAttribute停止for循環

這是代碼:

//Search and Update function after click 
function search_(target, letter) 
{ 
    for (var i = 0; i < randomWord.length; i++) 
    { 
     //Identify the <span>'s id by the letter 
     var target_ = document.getElementById(letter + i); 
     //Get the <span>'s value_ 
     var attr_ = target_.getAttribute('value_'); 
     alert(attr_); 
     /*if (randomWord[i] == attr_) 
     { 
      target_.className = 'hide'; 
     };*/ 
    }; 
}; 
+0

'value_'屬性是否存在?我不這麼認爲,因爲它不是標準的HTML屬性。 'span'元素沒有'value',請使用'.textContent'代替。 – evolutionxbox

+0

看看http://stackoverflow.com/questions/27240889/javascript-extract-span-value – evolutionxbox

+0

當我使用textContent時,循環仍然在第二個循環上返回null。 編輯: 我給了它一個數據值屬性,但也是一樣的。 – Ben

回答

0

好吧,我已經改變了一些功能。現在它工作正常。 謝謝你的幫助!

function search_(letter) 
    { 
    for (var i = 0; i < randomWord.length; i++) 
    { 
     //Identify the guessWord <span> 
     var targetNew = document.getElementById(i + '' + (randomWord.length-i)); 
     //Make it appear if the word contain the clicked letter 
     if (targetNew.getAttribute('data-value') == letter) 
     { 
     targetNew.className = 'hide'; 
     }; 
    }; 
    }; 
0

不能確定這就是你想要的。但是,可以考慮一試:

function search_(target, letter) { 
    for (var i = 0; i < randomWord.length; i++) { 
     var target_ = document.getElementById(i); // you're not assigning span's id by letter, so this the way to get its id 
     var attr_ = target_.innerText; 
     console.log(attr_); // check console log 
    }; 
}; 

記住:<span>元素不包含任何value/value_屬性。因此,要獲得<span>元素的值,您應該使用innerText屬性。

+0

我也嘗試過使用innerText,textContent和innerHTML。當循環進入下一輪時,它返回一個null並使其崩潰。 – Ben

+0

那麼你必須在其他地方有錯誤。考慮創建一個小提琴 – m87

+0

當我只使用這部分: 函數搜索_(目標,字母) { 爲(VAR I = 0;我的ID字母 var target_ = document.getElementById(letter + i); alert(target_); }; }; 它認爲所有的跨度和給我的警報消息。如果我試圖獲得它崩潰的價值。 – Ben