如何从文本中删除字符串并仅在jquery中保留int值

时间:2014-03-26 17:23:27

标签: javascript jquery

我在我的页面上有几个不同的产品我从中检索值并添加到购物车现在我想计算它给我一个NaN错误的总数所以如何从字符串中删除此NaN以满足NaN能够计算这里的产品总和是我的代码。

<div class="left-top">
        <ul class="add">

        </ul>
        <ul style="float:right">
    <li id="total">0.0</li>
        </ul>
     </div>

  <div class="right-bottom">
     <div class="box2">
         <p>pkr 800.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 700.0</p>
       <img src="images/col.png" />
       <h1>Beverges</h1>
     </div>
     <div class="box2">
      <p>pkr 800.0</p>
       <img src="images/col.png" />
       <h1>Beverg</h1>
     </div>

<script type="text/javascript">
$(document).ready(function() {
  $('.box2').click(function(){
      //alert($(".add li:first").html());
      var price=$( this).find('p').html();
      var product=$( this).find('h1').html();
      //adding the values

      var price1=$(this).find('p').html();    
      var currentValue=parseInt($("#total").text());
      var newValue =parseInt(currentValue) + price1;
      $("#total").text(newValue);
      //end of adding values
       if(product)
       {
           if($(".add li:first").html()== undefined)
                { 
                 $('<li>', {html: price}).prependTo('.add');
                 $('<li>', {html: product}).prependTo('.add');

                }
           else
                {
                 $('<li>', {html: product}).appendTo('.add');
                 $('<li>', {html: price}).appendTo('.add'); 
                }
       }
  });
});
</script>

3 个答案:

答案 0 :(得分:4)

为什么不将data-value = {price}添加到p标签并解析?

<p data-value="700">pkr 700.0</p>    

<li id="total" data-vlue="0">$0</li>

var tot = parseInt($( this).find('p').attr('data-value')) 
+ parseInt($('#total').attr('data-value'));
$('#total').attr('data-value', tot);
$('#total').html('$' + tot);

答案 1 :(得分:1)

http://jsfiddle.net/RTeKC/ {

price1 = price1.replace("pkr ","") * 1;
var currentValue=parseInt($("#total").text());

}

只有你用“”替换“pkr” 后 将结果乘以1以获得整数

答案 2 :(得分:0)

根据我对这个问题的理解,我会选择Mark S的答案,那就是更清晰的实施方法。但是如果你不想改变你的数据。这是使用原始结构的方法。

$(document).ready(function() {
    findTot();
});

function findTot(){
   var total =0;
   $(".right-bottom").find("p").each(function(){
      total += parseInt($(this).html().split(" ")[1]);
   });
   $("#total").html(total);
}

Here如果你想检查一下jsfiddle