javascript getAttribute 停止 for 循环

javascript getAttribute stops the for loop

我正在用 JavaScript HTML 和 CSS 做刽子手游戏。 在我的一个函数中,我尝试使用一个名为:value_ 的跨度属性。 当程序到达那个点时,它只 运行s 一次。当我点击另一个字母时,它什么也没做。如果我将 getAttribute 行放在注释中,那么只要我点击一个字母,函数 运行 就会生效。 有任何想法吗? :\

这是代码:

//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';
        };*/
    };
};

不太确定这就是您想要的。不过可以考虑试试 :

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 属性。

好的各位,我对功能做了一点改动。现在它工作正常。 感谢您的帮助!

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';
      };
    };
  };