【问题标题】:Javascript jquery for loop problemJavascript jquery for循环问题
【发布时间】:2011-08-29 11:28:45
【问题描述】:

当我运行这个 for 循环时,它给了我名字 bob 和 jacob 它说 undefined 有人知道为什么吗?

        $(function(){

        count = 1;

        for(x=0; x <= count; x++)
        {
            track = $('#track' + x).val();
            document.write(track);
        }

    });

    <input type="hidden" id="track0" value="bob" /> 
<input type="hidden" id="track1" value="jacob" />   

【问题讨论】:

  • 您是否在标识符周围加上引号?确保它们也被添加到数字周围,而不仅仅是#track
  • 只是一个建议:输入字段应该总是用他的名字而不是他的 id 来调用(即使它工作正常)。

标签: javascript jquery for-loop


【解决方案1】:

写入文档会删除您之前的 HTML。因此,您不能再通过 id 访问元素。 警告或将其写入某个 div 而不是文档会给出正确的响应。

http://jsfiddle.net/KjHFM/

<span id='test'> RESULT : </span>


 $(function(){

    count = 1;

    for(x=0; x <= count; x++)
    {
        track = $('#track' + x).val();
        alert(track); // or $('#test').append(track+ "    ");
    }


});

【讨论】:

  • 这不是 jQuery,而只是在加载 jquery 时触发的普通 javascript。
【解决方案2】:

因为document.write()替换了旧的html,所以说track1被第一个.write()删除了

使用警报here

<script>        $(function(){

        count = 1;

        for(x=0; x <= count; x++)
        {
        $("#content").append(x+' is '+$('#track' + x).val());
        }

    });</Script>
<div id="content"></div>
<input type="hidden" id="track0" value="bob" /> 
<input type="hidden" id="track1" value="jacob" />  

【讨论】:

    【解决方案3】:

    第一次调用 document.write 时,您将 dom 替换为 html 文本 bob

    当第二次迭代在 for 循环中运行时,jacob 不再在 dom 中——这就是为什么要写 undefined。

    由于您没有使用 var 关键字 x,count 和 track 现在都是窗口对象的全局变量。

    【讨论】:

      【解决方案4】:

      document.write() 以非常激进的方式改变 DOM,替换原始内容。

      正确的 jQuery 表示法是:

      jQuery(function($){
          $("input").each(function( index ){
              alert( index + ': ' + $(this).get(0).id + ' = ' + $(this).val() );
          });
      });
      

      您可以通过将警告行替换为以下内容,将您现在在警告框中看到的文本添加到正文:

      $("body").append( index + ': ' + $(this).get(0).id + ' = ' + $(this).val() );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 1970-01-01
        • 2012-09-20
        • 2012-03-19
        • 1970-01-01
        • 2011-10-21
        • 1970-01-01
        相关资源
        最近更新 更多