我有一个这样的表(它还有其他行和列,但现在使用这个):
+----------------+
| Expected Total |
+----------------+
| R547 280,00 |
| R503 369,00 |
| R461 062,00 |
| R354 535,00 |
| R621 620,00 |
| R298 125,00 |
+----------------+
我有以下jQuery在我的表中运行并获取我想要的单元格值。
$("#GridView2 tr:has(td)").each(function () {
var cell2 = $(this).find("td:eq(1)");
Totals.push(cell2.html());
alert(Totals);
});
现在的问题是,当我将结果提醒到我的屏幕时,我得到以下输出。
R547 280,00 etc...
显然构建了一个非常混乱的无法使用的数组。我一直在网上搜索找到解决方案,但还没找到任何东西。
(基本上,我只想抓住数字,没有逗号,也没有空格)
547280
之前有没有人遇到过这个问题,或者有人能指出我的解决方案/正确的方向?
感谢Razor和你们所有人,我设法让它工作:)注意:我确实需要将它转换为字符串,然后在发送到我的图表之前返回到int。所以,如果有人碰到这个问题,我就会这样做。
$("#GridView2 tr:has(td)").each(function () {
var cell2 = $(this).find("td:eq(1)");
var scell2 = cell2.text();
var sscell2 = scell2.split(/[a-zA-Z,\s]/).join("").slice(0, -2);
Totals.push(sscell2);
//alert(Totals);
});
//Back to Int for Graphs
Total1 = parseInt(Totals[0]);
Total2 = parseInt(Totals[1]);
Total3 = parseInt(Totals[2]);
Total4 = parseInt(Totals[3]);
Total5 = parseInt(Totals[4]);
Total6 = parseInt(Totals[5]);
答案 0 :(得分:1)
"R461 062,00".split(/[R,\s]/).join("").slice(0,-2)
将提供461062
所以请使用:var cell2 = $(this).find("td:eq(1)").split(/[R,\s]/).join("").slice(0,-2);
答案 1 :(得分:0)
尝试使用正则表达式
var Totals = $("#GridView2 tr td:nth-child(2)").map(function () {
return $(this).text().replace(/[^\d]/g, '')
}).get();
答案 2 :(得分:0)
我假设您可以控制使用数据填充HTML。如果是这种情况,我建议在DOM元素上嵌入一个额外的属性。如果你不需要,就没有必要操纵字符串。
<tr data-value="547280">
<td>...</td>
...
</tr>
现在您可以只为该值提取该属性 -
$( "#GridView2 tr:has(td)" ).each( function() {
var cell2 = parseInt( $( this ).data( "value" ) );
Totals.push( cell2 );
alert( Totals );
});