从带有jQuery的字符串中提取一个小数号,那里还有其他值



我正在尝试从jquery中提取DIV(SO内部(的小数号。我的问题是我不能使用价值(这对我来说可能是理想的(,所以我必须处理一个字符串。

我的另一个问题是,不幸的是,在我的字符串中,还有其他数字。

所以我在数字前添加了一个美元标志,因此我可以轻松地隔离它。

我的数组是以下内容(此刻只是一个选择标签,有一些选择(:

<select id="easypost" name="shipping_method">
    <option>
        Select shipping method...
    </option>
    <option value="2">
        Priority $38.565
    </option>
    <option value="1">
        ExpeditedParcel $19.56
    </option>
    <option value="3">
        RegularParcel $19.56
    </option>
    <option value="4">
        Xpresspost $24.66
    </option>
    <option value="5">
        PurolatorExpress9AM $84.855
    </option>
    <option value="6">
        PurolatorExpress1030AM $52.665
    </option>
    <option value="7">
        PurolatorExpress $32.175
    </option>
    <option value="8">
        PurolatorGround $31.605
    </option>
</select>

我的结果正在进行一些数学,但重要的部分是变量双数。我想我只需要在美元符号之后提取数字,但是我愿意收集有关此主题的更好建议。

$('#easypost').change(function() {
    var shipping = $("#easypost option:selected").text();
    var doublenumber = Number(shipping.replace(/[^0-9.]+/g, ""));
    var tax_per = ((doublenumber / 100) * 13).toFixed(2) / 1;
    var finaltotal = (totnumber + doublenumber + tax_per).toFixed(2) / 1;
    console.log(doublenumber + " " + tax_per + " " + finaltotal);
    $('.total').text(finaltotal);
}
如您所见,

我的问题是当我尝试从purolatorexpress9am提取值$ 84.855或purolatorexpress1030am $ 52.665。

$('#easypost').on('input', function(){
  //version using the text
  //get the text and trim it
  var value = $('option:selected', this).text().trim();
  //ignore the first option
  if (value.indexOf('$') > -1) {
    //get all the text after the $ and parse it
    value = parseFloat(value.substr(value.indexOf('$') + 1));
    console.log(value);
  }
  
  
  
  //version using the data field
  var value2 = $('option:selected', this).data('cost');
  
  if (value2) {
    console.log(value2);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="easypost" name="shipping_method">
  <option>
    Select shipping method...
  </option>
  <option value="2" data-cost="38.565">
    Priority $38.565
  </option>
  <option value="1" data-cost="19.56">
    ExpeditedParcel $19.56
  </option>
  <option value="3" data-cost="19.56">
    RegularParcel $19.56
  </option>
  <option value="4" data-cost="24.66">
    Xpresspost $24.66
  </option>
  <option value="5" data-cost="84.855">
    PurolatorExpress9AM $84.855
  </option>
  <option value="6" data-cost="52.665">
    PurolatorExpress1030AM $52.665
  </option>
  <option value="7" data-cost="32.175">
    PurolatorExpress $32.175
  </option>
  <option value="8" data-cost="31.605">
    PurolatorGround $31.605
  </option>
</select>

您可以使用拆分,这可以帮助您

myArry = document.getElementById('easypost');
myArry.childNodes.forEach(function(ele){ 
txt = ele.textContent ;
txt = txt.split("$");
console.log(txt[1]);
})

结果

在此处输入图像描述

最新更新