javascript - 如何在数据数组的每次迭代中创建内容为 "i+1"的新 HTML 元素

标签 javascript jquery html

我目前正在网站上显示数据库中的一些数据,它是一个行列表,每行包含两个元素:“名称”和“分数”。我使用一些带有 Ajax 的 Jquery 正确显示它们,该 Ajax 获取它们,动态地为它们创建一个表,然后将每一行插入到该表中。

一切都工作正常,但是当分数从数据库返回时按分数降序排列,我想创建第三个元素以包含在每行中。我希望这个元素是一个排名(如“第一”、“第二”、“第三”等),并且我希望它出现在每行的开头。

这是创建表并插入数据的 Jquery:

  function makeTable(data){
   var tbl_body = "";
      $.each(data, function() {
        var tbl_row = "";
        $.each(this, function(k , v) {
          tbl_row += "<td>"+v+"</td>";
        })
        tbl_body += "<tr>"+tbl_row+"</tr>";                 
      })

    return tbl_body;
  }

我试过这个:

  function makeTable(data){
   var tbl_body = "";
      $.each(data, function(var i = 0; i++) {
        var tbl_row = "";
        $.each(this, function(k , v) {
          tbl_row += "<td>"+v+"</td>";
        })
        tbl_body += "<tr>"+tbl_row+"<td>"+[i+1]+"</td>"+"</tr>";                 
      })

    return tbl_body;
  }

为了使输出看起来像这样:

1 John Doe 1000 2 无名氏 750 3 jack ·道 500

但是它不起作用。创建一个在每次迭代中进行计数的额外元素可能相对简单,但我不确定用于实现此目的的正确语法,任何帮助将不胜感激,提前谢谢您!

最佳答案

function makeTable(data){
   var tbl_body = "";
   var index=0;
      $.each(data, function() {
        var tbl_row = "";
        index++;
        $.each(this, function(k , v) {
          tbl_row += "<td>"+v+"</td>";
        })
        tbl_body += "<tr><td>"+index+"</td>"+tbl_row+"</tr>";              
      });

    return tbl_body;
  }

关于javascript - 如何在数据数组的每次迭代中创建内容为 "i+1"的新 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36131846/

相关文章:

javascript - 检查元素的文本是否与另一个元素的文本相同

javascript - jQuery 各有 SetTimeout

javascript - ol-ext Controller 中的控制栏和功能

jquery - ajax 请求后未触发 IE document.ready()

javascript - 使用 CSS 打印出变异的元音

javascript - 如何使整个 DIV 可点击以转到另一个页面?

javascript - 是否可以在超链接中指定下载文件的位置

javascript - 如何在 Java 中使用 Selenium 获取 Canvas 元素内图像的 URL,以及如何使用 JavascriptExecutor?

javascript - 替换 dojo/dijit TabContainer 中特定选项卡的内容?

javascript - localStorage 不适用于 IE 10 抛出错误