2017-02-17 6 views
0

Я делаю игру палача, используя только JavaScript HTML и CSS. В одной из моих функций я пытаюсь взять атрибут span с именем: value_. Когда программа достигает этой точки, она запускается только один раз. Когда я нажимаю на другое письмо, это ничего не делает. Если я помещаю строку 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' не имеют значения' ', вместо этого используйте' .textContent'. – evolutionxbox

+0

Взгляните на http://stackoverflow.com/questions/27240889/javascript-extract-span-value – evolutionxbox

+0

Когда я использую textContent, цикл все равно возвращает null во втором цикле. EDIT: Я дал ему атрибут value-value, но то же самое происходит. – 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_ (цель, письмо) { для (вар я = 0; я «s по письмо var target_ = document.getElementById (буква + i); alert (target_); }; }; Он запустил весь пролет и дал мне предупреждающие сообщения. Если я попытаюсь получить значение, оно сработает. – Ben

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

  • Нет связанных вопросов^_^