如何访问HTML中的数字数据?

时间:2014-03-05 09:31:32

标签: jquery html

我有一个这样的表(它还有其他行和列,但现在使用这个):

+----------------+
| 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]);

3 个答案:

答案 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 );
});