我有一个jQuery代码,用于检查表中每个data-tipo
的属性<th>
,并根据其内容设置该列中每个<td>
的特定值。请参阅example for better understanding。
JS:
var tabla = $('table');
tabla.find('tr th').each(function(i) {
var tipo = $(this).data('tipo');
if (tipo === 'string') {
var celda = tabla.find('tr td').eq(i);
celda.attr('data-valor', celda.text());
}
if (tipo === 'number') {
var celda = tabla.find('tr td').eq(i);
var numSaneado = celda.text().replace('.', '').replace(',', '.').replace(/[^0-9.]/g, "");
celda.attr('data-valor', numSaneado);
}
});
一切正常,将<td>
标题的列中的每个data-tipo='string'
放置在正确的data-value
上,与任何data-tipo='number'
相同,但仅表示如此在第一行做。
如何在所有行上使用它?
答案 0 :(得分:1)
使用选择器"tr td"
时,您要对行及其单元格的选择进行组合。因此,当您执行tabla.find('tr td').eq(i);
时,它只会选择&#34; i
&#34;行和单元格的组合。
相反,我相信您希望在每一行中找到i
个单元格。为此,选择所有行,然后在每个行中找到正确的单元格。这是实现这一目标的一种方式:
table.find('tr').each(function (tr) {
var celda = $(tr).find('td').eq(i);
// the rest of your code
});
遍历行,查找行中的每个i
单元格。