【问题标题】:jquery, why var won't add up and why I cannot see the added imgjquery,为什么 var 不会加起来,为什么我看不到添加的 img
【发布时间】:2014-04-06 16:01:37
【问题描述】:

只有两件事: 为什么我的 var 检查不会加起来(它总是 0),以及如何解决它? 第二,为什么我不能在表格之后添加xmark图像。

我的 html 设置是我在 td 中有字母 imgs。用户应按字母顺序单击图像,每次正确单击图像都会被删除。如果错误,会出现一个xmark。

(代码中还没有:错了三下,游戏结束,然后我会问用户是想再玩还是回家)

这是我的 jquery 代码:

     $("img").click(function(){
            var error = 0;
            var check = 0;    
            var letterArray = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
            var clickedValue = $(this).attr('name');
            alert(check); 

            if(clickedValue ==letterArray[check]){
                $(this).parent().empty(); 
                check+=1;
            } else {
                error+=1;
                $("error").add('<td><img src="images/xmark.png" alt="xmark" name="xmark"/></td>');
            }
        });  

我的 html 表格: 为简洁起见,仅发布了前 6 个字母。

           <table>
                <tr class="rows">
                    <td><img src="images/Z.png" alt="Z" name="Z"/></td>
                    <td><img src="images/R.png" alt="R" name="R"/></td>
                    <td><img src="images/S.png" alt="S" name="S"/></td>
                    <td><img src="images/U.png" alt="U" name="U"/></td>
                    <td><img src="images/B.png" alt="B" name="B"/></td>
                    <td><img src="images/A.png" alt="A" name="A"/></td>
                </tr>
           </table> 
           <table><tr id="error"></tr></table>

【问题讨论】:

  • 你在某处有&lt;error&gt;标签吗,$("error").add也没有按照你的想法做,也许你想使用append。

标签: jquery add var


【解决方案1】:

每次运行函数时,都会初始化新的 check 和 error 变量。为了让它们保持状态,您需要将它们置于更高(例如全局)上下文中。

编辑:例如:

var error = 0,
    check = 0,
    letterArray = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
 $("img").click(function(){
        var clickedValue = $(this).attr('name');
        alert(check); 

        if(clickedValue ==letterArray[check]){
            $(this).parent().empty(); 
            check+=1;
        } else {
            error+=1;
            $("error").add('<td><img src="images/xmark.png" alt="xmark" name="xmark"/></td>');
// $("error") looks like the wrong selector. You're also misusing .add()
        }
    });  

【讨论】:

  • 这应该是一条评论。您还没有为该问题提供可行的解决方案。
  • @StevenPHP 我解释了这个问题,并说他们如何解决它(把它放在更高的上下文中)。
【解决方案2】:

把你的alert(check)放在你点击函数的最后一行,它应该不为零。

【讨论】:

    【解决方案3】:

    您的代码实际上正在运行。如果您将警报功能放置在 if 语句中,然后每次单击最后一张图像,您将看到图像被删除并且值增加。

    演示http://jsfiddle.net/hdRT5/53/

    if(clickedValue == letterArray[check]){
                    $(this).parent().empty(); 
                    check+=1;
                    alert(check);
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      相关资源
      最近更新 更多