繁体   English   中英

如何使用JQuery循环表元素和检索数据元素?

[英]How do I loop through table elements AND retrieve data elements using JQuery?

我有一个在标准HTML 4.01 Transitional页面中看起来像这样的html表:

<table>
  <thead>
    <tr>
      <th>Col 1</th>
      <th>Col 2</th>
      <th>etc...</th>
    </tr>
  </thead>
  <tbody id="tableBodyID">
    <tr class="rowElement" data-element="some-data-here">
      <td>Some Table Data</td>
      <td>Some More Table data</td>
      <td>etc.</td>
    </tr>
    <tr class="rowElement" data-element="some-data-here">
      <td>Some Table Data</td>
      <td>Some More Table data</td>
      <td>etc.</td>
    </tr>
  </tbody>
</table>

我想循环遍历所有行并获取data-element字段中的“data”,并使用JQuery将其放入变量中。 我尝试过.children(),. data()和.each()的多种变体,但是无法检索“data”元素。

我试过(在$(document).ready()块中...):

$('tbody > tr').each(function() {
  alert( $(this).data('element'));  // CORRECTION - this works.
});

$('tbody').children().each(function() {
  alert( $(this).data('element'));  // CORRECTION - this works
});

$('.rowElement').each(function(i, obj) {
  rowValue = $(this);
  alert(rowValue.data('element'));  // CORRECTION - this works
});

欢迎任何帮助。 我使用的是HTML 4.01和JQuery 1.7.1。 我一直在Firefox中测试,但需要支持其他标准浏览器Firefox,Opera,Safari,Chrome和IE8 +。

(针对较小的语法更改进行了编辑)

实际问题是一个案例问题,请参阅下面的评论。 问题解决了。

这对我有用:

$('table').find('tbody > tr').each(function() {
  alert( $(this).data('element')); 
});

http://jsfiddle.net/LBKvm/

(但它可能不是最有效的方式)

使用.map.get ,可以将每个tr映射到element数据属性,以获取这些值的数组。 至于选择器,ID是最直接的,因为它直接指向tbody元素,你想要tr后代: http//jsfiddle.net/zeFGW/

var elementValues = $("#tableBodyID tr.rowElement").map(function() {
  return $(this).data("element"); // replace each `tr` with its `element` data
}).get(); // turn jQuery object into an array

你的逻辑/调用对我有用,但你有一些语法问题,括号后面('element'); 应该是('element')); 并且选择器也需要引用,缺少的那些应该是('tbody')等。

jsfiddle (注意我将alert更换为console.log调用)

测试铬17。

您的代码与问题中发布的代码有何不同?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM