迭代每个jquery

时间:2016-03-22 23:20:11

标签: javascript jquery

我想在自己内部重申这个表格。但它不起作用。当我传递参数时,它不会出错或更好。

 $('table tr').each(function () {
    var tr = $(this)
    var nivel = parseInt(tr.find('td:eq(1)').text());
    var item = parseInt(tr.find('td:eq(0)').text());
    if (nivel > 3) {
        tr.closest('tr').css({ "display": "none" });
    }
    $('table tr').each(function (item) {
        var itemPai = parseInt($(this).find('td:eq(2)').text());
        if (item == itemPai) {
            console.log("Tem filhos");
            $(this).closest('tr').find('a.toggler').css({ "display": "normal" });
        } else {
            $(this).closest('tr').find('a.toggler').css({ "display": "" });
        }
    });
});

1 个答案:

答案 0 :(得分:0)

我不明白你想要实现什么,可能有助于你知道你的桌子中有哪种数据。

您可以确定您访问的单元格值是数字吗?如果不是100%,请在使用typeof之前使用parseInt

无论如何,在第二个循环中,来自外部循环的变量item可用,在函数调用中声明它作为参数将覆盖外部值。

如果你想要的是比较外部循环和内部循环之间的值,只需从内部迭代的函数调用中删除参数:

$('table tr').each(function () {
  var tr = $(this)
  var nivel = parseInt(tr.find('td:eq(1)').text());
  var item = parseInt(tr.find('td:eq(0)').text());
  if (nivel > 3) {
    tr.closest('tr').css({ "display": "none" });
  }
  $('table tr').each(function () {
    var itemPai = parseInt($(this).find('td:eq(2)').text());
    if (item == itemPai) {
      console.log("Tem filhos");
      $(this).closest('tr').find('a.toggler').css({ "display": "normal" });
    } else {
      $(this).closest('tr').find('a.toggler').css({ "display": "" });
    }
  });
});