如何在jquery for循环中打印变量的值

时间:2010-07-17 16:19:09

标签: jquery

$(document).ready(function(){
  $('#show').click(function(){
    var totrows= $('#table').attr('rows').length;
    for(i=0; i < totrows; i++){
      //var rowid = $('#table').$(this).attr('i'); 
      alert(rowid);
    }
  });
});

在上面的函数中,当我们点击超链接“显示”时,我们从“table1”获取行数。我想将“i”的值添加到表中,使其成为“table1”“table2” “”table3“”table4“”table5“。注释行给我错误

3 个答案:

答案 0 :(得分:1)

以下是您的实际代码,这是错误的,我会尝试解释您的程序中的几率,这可能会帮助您在将来的编码(请光临我,谢谢!!)

 $(document).ready(function(){
  $('#show').click(function(){
    var totrows= $('#table').attr('rows').length;
    for(i=0; i < totrows; i++){
      //var rowid = $('#table').$(this).attr('i'); 
      alert(rowid);
    }
  });
});

上述代码没有以正确的方式编写,因为

1 var totrows= $('#table').attr('rows').length;

表格元素中的名称“”是否有任何属性(或指定)?为什么你要担心一个属性的长度?

2 )第二件事,当你使用this时,确保它将引用哪个元素。在您的代码中,

   $('#show').click(function(){
      var totrows= $('#table').attr('rows').length;
       for(i=0; i < totrows; i++){
          //var rowid = $('#table').$(this).attr('i'); 
           alert(rowid);
        }
   });

    
//var rowid = $('#table').$(this).attr('i');

以上一行(已评论)无效,它应该是$(this).attr('myAttr');之类的内容,而且它指的是$('#show')this应引用tr元素你将用tr元素做一些事情

第3

for(i=0; i < totrows; i++){
      //var rowid = $('#table').$(this).attr('i'); 
      alert(rowid);
    }

for 循环i中是一个计数器变量,而不是属性

4 )最后一件事充分利用了jQuery API jQuery.com 正在免费提供: )

修改: 如果你想让我为你编码,我会做如下的事情

$(document).ready(function() {
    $('#show').click(function() {
      $('#table tr').each(function(i) {
         alert('table' + (i+1));
      });
    });
});

.each()函数中,我们将索引元素作为参数传递给

$(selector).each(function(Index,Element){ //do some thing });

默认情况下,Index初始化为0,因此,如果您希望获得{table1,table2...}的最终结果,只需将Index增加后加上1 nick

有关详细信息,请参阅jquery .each()网站{{1}},{{1}}说。

答案 1 :(得分:0)

我不确定整体意图,但看起来像这样:

$(document).ready(function(){
  $('#show').click(function(){
    var totrows= $('#table').attr('rows').length;
    for(i=0; i < totrows; i++){
      var rowid = 'table' + (i+1); 
      alert(rowid);
    }
  });
});

这会提醒“table1”,“table2”等... .rows i的每个长度都会从0开始,因此您需要添加1它。如果您希望它基于<tr>元素的数量而不是某些属性,则可以使用.each(),如下所示:

$(function(){ //short for $(document).ready(function() {
  $('#show').click(function(){
    $('#table tr').each(function(i) {
      var rowid = 'table' + (i+1); 
      alert(rowid);
    });
  });
});

答案 2 :(得分:0)

我认为你想在每一行或类似的东西中插入索引,例如

$(document).ready(function(){
  $('#show').click(function(){

    $('#mytable').find("td").each(function(i,el){

      $(el).text($(el).text()+i)

    });
  });
});​

它适用于以下html

 <input type="button" id="show" value="Show">

 <table id="mytable">
   <tr><td>row</td></tr>
   <tr><td>row</td></tr>
   <tr><td>row</td></tr>
   <tr><td>row</td></tr>
 </table>

您可以在http://jsbin.com/apeto3

尝试此操作