【问题标题】:How can I loop through all elements of a certain type through jQuery?如何通过jQuery循环遍历某种类型的所有元素?
【发布时间】:2014-05-31 04:01:49
【问题描述】:

有一些类似的问题,但我的问题更具体一些。

我有一个 id 为“myTable”的表格元素,其中包含一些 tr 元素(假设 tr 元素为 2)。

<table id="myTable">
    <tr>
        <td>Row 1</td>
    </tr>
    <tr>
        <td>Row 2</td>
    </tr>
</table>

如果我尝试查看#myTable 表格元素中的行数,请编写

var numberOfRows = $("#myTable tr").length;

numberOfRows 变量中总是有 1。

它仅在我向所有 tr 元素添加类时才有效。

 <table id="myTable">
    <tr class="myRows">
        <td>Row 1</td>
    </tr>
    <tr class="myRows">
        <td>Row 2</td>
    </tr>
</table>

假设类是“myRows”并编写以下内容:

var numberOfRows = $("#myTable .myRows").length;

然后,我得到了正确的数字 - 2。

所以,我的问题是,如果某些元素没有被类区分(如上面的示例),我如何获取某些元素的数量或循环它们?

【问题讨论】:

  • 有哪些元素?你能张贴你的标记吗?
  • $("#myTable tr").length 应该可以工作。否则,您的 HTML 标记无效。
  • 它们是 table 和 tr 元素。我不会在这里粘贴 HTML。
  • 使用相关标记编辑您的问题(与您粘贴代码的方式相同)
  • @Julian 使用标准的复制/粘贴,或组合一个 jsFiddle。

标签: javascript jquery html class each


【解决方案1】:

你可以像这样使用:

$('#myTable > tbody  > tr').each(function() {...code...});

【讨论】:

  • 我宁愿等待 OP 发布他的 HTML。如果他没有tbody怎么办?
  • @asprin 只是不要使用 tbody
【解决方案2】:

也适用于所有主流浏览器的纯 JavaScript

 var rows=document.getElementById("myTable").rows;
 for(var rowIndex=0;rowIndex<rows.lenght;rowIndex++){
        //now do everything with tr $(rows[rowIndex]).height(80)
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2011-06-11
    • 2017-04-29
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多