![](/img/trans.png)
[英]How do I retrieve array elements in pairs using the for loop in javascript?
[英]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'));
});
(但它可能不是最有效的方式)
使用.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.