【问题标题】:Assigning values to variable WHILE loop为变量 WHILE 循环赋值
【发布时间】:2011-07-12 19:35:12
【问题描述】:

我有一个 WHILE 循环,只要 $i 小于 10,它就会循环遍历一个表。我希望这个循环将每个单元格的 INNERHTML 分配给一个变量。这样我以后可以使用它来处理信息(循环是因为您可以选择它是否必须采用前 3 个或前 10 个单元格)。但是如何将每个 innerHTML 分配给不同的变量? 我确信必须有一个简单的方法。但谷歌无法给我一个好的答案。

提前致谢!

米兰

【问题讨论】:

  • 您要将它们分配给哪些变量?
  • 大声笑,我的答案是第一个答案,它与大多数其他人的所有意图和目的都相同,另一个人得到了选票,哈哈,我猜这就是生活,不过是个好问题
  • @ScottC:这不是比赛。我想我得到了选票,因为我提供了所需的 Javascript,而不是伪代码。 :)
  • 也许吧!此外,这可能不是一场比赛,但很高兴能有一两票认可一个正确的答案,不是吗?没有什么说你的答案不能被选为正确答案,而其他人仍在投票中……对不起,如果我让你觉得这是一场比赛。

标签: javascript jquery variables while-loop


【解决方案1】:

数组就是为此目的而设计的。

(大概你的意思是i,而不是$i,因为Javascript变量不需要以$开头..虽然你没有理由不能,但很多人选择使用仅适用于 jQuery 对象。我不会在下面使用它们。而且我不得不猜测你的代码布局。)

var myHTMLs = [];
var i = 0;
while (i < 10) {
   var html = *<no idea how you are getting cell contents here.. what cell?!>*
   myHTMLs[myHTMLs.length] = html;
   i++;
}

【讨论】:

  • 谢谢这个工作:) 其他答案可能也可以工作,但这个答案是最重要的。感谢大家!我知道它必须是这样的东西 xD 我几乎有同样的东西,但没有奏效。但知道它确实如此!非常感谢!是的,您不需要使用 $,但出于某种原因,我认为它看起来更好(至少,这样我可以更容易地分开事物)。
  • @Milaan:没问题。关于$,我理解。 :)
【解决方案2】:

你能给每个单元格一个唯一的 id 吗?然后你可以这样做:

var cell_ids = ['id-cell-1', 'id-cell-2',...];
var cellcontents = [];

while (i < 10) {
  cellcontents.push($("#" + cell_ids[i]).html());
  i--;
}

【讨论】:

    【解决方案3】:

    如果我正确阅读了您的问题,您希望保留循环遍历的每个单元格的 innerHTML,对吗?在这种情况下,您可能想要使用数组。可能是这样的:

    var i = 0;
    var innerHTML_array = [];
    while( i < 10 ) {
      innerHTML_array[i] = current_cell.innerHTML;
      i++;
    }
    

    【讨论】:

      【解决方案4】:

      这是数组有用的时候:

      var i = 0;
      var contents = [];
      while (i < 10) {
         var div = document.getElementById("foo" + i);
         contents.push(div.innerHTML);
         i++;
      }
      alert(contents.length);
      alert(contents[0]);
      alert(contents[1]);
      

      【讨论】:

        【解决方案5】:

        一个数组?

        这只是半伪代码,但是:

        var i;
        var innerString[];
        
        while (i < 10) {
            innerString[i] = (innerHTML of elementID);
            i++;
        }
        

        【讨论】:

          【解决方案6】:

          也许这会有所帮助:

          尝试使用一些 id 引用您的表,例如。

          <table id="myTable">
          

          那么,试试这段代码

          var tab = document.getElementById("myTable");
          var y = 0, x = 0;
          
          var myContainer = [];
          
          for (y = 0; y < tab.rows.length; y++){
              for (x = 0; x < tab.rows[y].cells[x].length; x++){
                  if (!myContainer[y])
                      myContainer[y] = [];
                  myContainer[y][x] = tab.rows[y].cells[x].innerHTML;
              }
          }
          

          您的表格内容现在保存在 myContainer 变量中。要访问第 8 行中的第 3 号单元格,您只需使用:

          alert(myContainer[8][3]);
          

          【讨论】:

          • 这是一些不错的编码!真的,我要保存这个!为了我的目的使用它有点高级,但我真的很喜欢它。我要把它保存起来以备不时之需,也许我可以使用它。谢谢!
          【解决方案7】:

          您可以尝试使用 jQuery 的 .map() 循环遍历所有单元格并将它们的 innerHTML 属性作为数组返回。

          示例:http://jsfiddle.net/xHH64/1/

          var htmlArray = $('tbody td', '#tableID').map(function(i,v){
            return i < 10 ? v.innerHTML : null;
          }).get();
          

          【讨论】:

            猜你喜欢
            • 2019-06-09
            • 1970-01-01
            • 2016-01-13
            • 2013-11-15
            • 2013-09-25
            • 2021-10-22
            • 2013-02-17
            • 1970-01-01
            • 2011-02-28
            相关资源
            最近更新 更多