【问题标题】:Perform .each function after first table row在第一个表行之后执行 .each 函数
【发布时间】:2011-10-10 13:23:36
【问题描述】:

我有以下代码

 $("#description tr").each(function(){
            var description;
            var chargecode;
            var amount=0;

.......代码继续,但我感兴趣的是在第一行之后执行每个函数。我的第一个表格行有标题,所以我的代码不断获得空变量值等等。这是可能的还是我应该将标题行分隔为不同的表格? 感谢所有帮助

【问题讨论】:

  • 你不能为除第一行之外的所有行添加class 属性并使用$("#description tr.class") 吗?
  • 作为语义问题,您应该将您的第一个tr 放在thead 中,其他的放在tbody 中,以便您可以选择#description tbody tr
  • @zzzBov 我更喜欢你的解决方案

标签: jquery html


【解决方案1】:

each() 回调的参数是索引。您可以使用它,或者您可以使用<thead><tbody> 正确定义您的表格,然后使用$("#description tbody tr")

【讨论】:

  • 虽然其他解决方案应该可以工作,但我认为这是最“正确”的解决方案。如果您的第一个表格行是头部,请将其标记为这样,然后您可以使用标签而不是类来选择表格主体。
【解决方案2】:

你可以使用:

$("#description tr:not(:first-child)")

工作示例:http://jsfiddle.net/KntKA/

另一个选项是$("tr:nth-child(n+2)"),但它的阅读效果不太好。

【讨论】:

  • 没有按预期工作。不过谢谢。我有多个单元格
【解决方案3】:

您可以将一个类添加到第一行(或所有其他行)并对其进行过滤(查看not-selector 或者您可以使用循环的索引(这是第一个参数),它在每次迭代都比你简单地跳过第一个迭代(或者你添加你自己的计数器)。当然,更好的解决方案是:

$("#description tr:not(:first-child)") 

同时使用not-selector 作为first-child 选择器。 您也可以使用greater than 选择器:

$("#description tr:gt(0)")

这么多选择......我会选择最后一个。

【讨论】:

    【解决方案4】:

    试试 -

     $("#description tr:gt(0)").each(function(){
                var description;
                var chargecode;
                var amount=0;
    

    tr:gt(0) 应该只获取索引大于零的行,因此忽略第一行。

    演示http://jsfiddle.net/ipr101/rPMUh/

    【讨论】:

    • 我会注意到:gt(0) 假设只有一张桌子。如果您有多个表,:gt(0) 将跳过第一个标题,但不会跳过其余部分。
    • 这很好。鉴于选择器首先通过 id 选择表,在这种情况下假设它们只是一个表似乎是合理的。
    • 我有多个表,由于某种原因它没有按预期工作
    【解决方案5】:

    使用$("#description tr:gt(0)").each:gt(0) 代表“其索引大于 0”,它将根据页面上出现的索引过滤匹配的元素。见the docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多