查找包含数字和文本混合的跨度并获取第二个数字的和

时间:2018-10-15 16:14:26

标签: javascript jquery html

我正在为一个简单的html游戏开发插件。在其中一部分中,我想展示玩家能力的总体维持情况。目前,它们显示在每个功能上,我认为最好将我的插件显示在页面顶部。元素看起来像这样:

<div class="col-sm-4 col-xs-12 text-center" style="padding-top: 10px;">
   <p style="background-color: red;">
      <b>Upkeep: </b>31 Bux each<br>1798 Bux total</p>
</div>

我添加了一条将跨度背景变为红色的行,以便可以看到我至少在抓住正确的元素。到目前为止,我的代码正在返回NaN。这是我的代码:

var sumdtotal = 0;
    $('div[class="col-sm-4 col-xs-12 text-center"] p').each(function() {
    var value = $(this).text().replace(" Bux each", "").replace(" Bux total", "");
    sumdtotal += +value;
    $(this).css( "background-color", "red" );
    });
    $("#totalupkeep").text(sumdtotal);

这个想法是在#totalupkeep范围内显示总保养。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式获取数字。您没有ID为totalupkeep的元素,因此我不确定您要如何显示它。我也不太清楚您要进行哪些计算。希望这会有所帮助:

$('div[class="col-sm-4 col-xs-12 text-center"] p').each(function() {
  var value = $(this).text().match( /\d+/g )
  $(this).css( "background-color", "red" );
  $("#totalupkeep").text('' + value[1]);
});

https://jsfiddle.net/gf1rcqoy/3/

编辑:值是一个包含两个数字的数组。第一个是每个值,第二个是总计。