使用for循环javascript迭代表格单元格

时间:2014-12-11 14:44:00

标签: javascript html

目标是将fizzbuzz应用于html表格单元格中的数字。 因此,获取表格的每个单元格中的数字,如果是3的倍数则迭代以显示“fizz”,如果是5的倍数则为“buzz”,如果是3和5的倍数则为“fizzbuzz”。 以下是我所拥有的。

HTML

 <tbody>
    <tr><td>3</td></tr>
    <tr><td>3</td></tr>
    <tr><td>3</td></tr>
    <tr><td>4</td></tr>
    <tr><td>5</td></tr>
    <tr><td>15</td></tr>
  </tbody>

和我的JS

  var table = $(this);

  var tds = $(this).find('td');
  var tableItems = "";

  for (var i = 0; parseInt(tds.eq(i).text()); i++) {
      tableItems += "<tr><td>";
      if ((i % 3 === 0) && (i % 5 === 0)) {
          tableItems += "FizzBuzz";
      }
      else if (i % 3 === 0) {
          tableItems += "Fizz";
      }
      else (i % 5 === 0) {
          tableItems += "Buzz";
      }
      tableItems += "</td></tr>";
  }
  $(".fizzer").append(tableItems);
}

似乎我需要找到一种方法让我迭代parseInt(tds.eq(i).text()); 但有麻烦......帮忙?

这是我得到的输出: FizzBu​​zz 1 2 嘶 4 蜂音

1 个答案:

答案 0 :(得分:0)

你可以尝试一下这个

$(document).ready(function() {
    $('table tbody tr').each(function() {
        var td = $(this).find('td:first');
        var value = td.html();
        td.html(parseValue(value));
    });

    function parseValue(value) {
        if (value % 15 == 0) {
            text = 'FizzBuzz';
        } else if (value % 5 == 0) {
            text = 'Buzz';
        } else if (value % 3 == 0) {
            text = 'Fizz';
        } else {
            text = 'Uncool.';
        }
        return text;
    }
});