2017-02-17 14 views
0

JavaScriptのHTMLとCSSのみを使用してハングマンゲームをしています。 私の関数の1つでは、valueという名前のスパンの属性を取得しようとしています。 プログラムがそのポイントに到達すると、プログラムは1回だけ実行されます。別の文字をクリックすると何もしません。コメントに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を使用すると、ループは2番目のループでもnullを返します。 EDIT: 私はそれにデータ値属性を与えましたが、同じことが起こります。 – 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で試してみました。ループが次のラウンドに入ると、それはヌルを返し、クラッシュします。 – Ben

+0

他の場所でエラーが発生している必要があります。私はこの部分のみを使用するとフィドル – m87

+0

を作成することを検討: 関数search_を(ターゲット、手紙)のための { (VAR I = 0; I のIDを特定します文字 var target_ = document.getElementById(letter + i); alert(target_); }; }; それはすべてのスパンを考えて、私に警告メッセージを与えます。値を取得しようとすると、クラッシュします。 – Ben

関連する問題