1
data-tipo
の各<th>
のテーブルをチェックするjQueryコードがあり、その内容に応じてその列の各<td>
に特定の値が設定されます。 example for better understandingを参照してください。より多くを選択することができません一致jQuery
JS:それはdata-tipo='string'
ヘッダ正しいdata-value
、および任意data-tipo='number'
と同じでカラムからすべての<td>
上に配置し、正常に動作するが、前記のように、それは最初の行のみに行い
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);
}
});
。すべての行で、この作品を作るための方法
?
代わりに 'table.find( 'tr')。find( 'td').eq(i)'を使ってみてください。もし可能であれば '( 'tr td')スタイルセレクタを使わないでください。非常に非効率です。それがうまくいかない場合は、 '.find( 'tr')。each(....)'を実行してループ内のtdsを取得してください。 – nurdyguy
@nurdyguy:_ "もし可能であれば、( 'tr td')スタイルセレクタを使用しないでください。非常に効率が悪いですが、ほとんどの場合は無関係です。 – CBroe
'eq(i)'は単一の要素を返します。あなたが 'table.find( 'tr')をしたいと思うように聞こえます。それぞれ(function(tr){var celda = $(tr).find( 'td')eq(i); ...' –