使用jquery将十进制转换为英尺和英寸时遇到问题

时间:2016-02-03 20:50:10

标签: jquery

我试图用jQuery将小数转换为英尺和英寸,但似乎无法找到答案。 (这是在Woocommerce购物车中)。

这是我的HTML:

<dd class="variation-Lengthyourequireft">
  <p>1.5</p>
</dd>
<dd class="variation-Lengthyourequireft">
  <p>2.5</p>
</dd>

我的代码:

$(document).ready(function(){    
    $("dd.variation-Lengthyourequireft > p").each(function(){
        var thenum = parseFloat($(this).text()),
            feetvalue = Math.floor(thenum), // returns just the feet value
            inchvalue = Math.round(((thenum) % 1) * 12); // returns just the (inches)           

        $("dd.variation-Lengthyourequireft > p").text(feetvalue + "' " + inchvalue + "\"");
    });

});

我的脚显示正确,但英寸返回0(零)。

示例:

1&#39; 0&#34 ;. (它应该是1&#39; 6&#34;。)我只是得到了NaN&#39;为NaN&#34;在我添加parseFloat()

之前

我发现其中一个问题是具有相同HTML标记的多个实例(在本例中为<dd class="variation-Lengthyourequireft">

1 个答案:

答案 0 :(得分:0)

您可以使用.text()的函数参数,以便根据旧值更改每个所选元素的文本。该函数接收元素的原始文本作为第二个参数,其返回值替换它。

&#13;
&#13;
$(document).ready(function() {
  $("dd.variation-Lengthyourequireft > p").text(function(i, oldText) {
    var thenum = parseFloat(oldText),
      feetvalue = Math.floor(thenum), // returns just the feet value
      inchvalue = Math.round(((thenum) % 1) * 12); // returns just the (inches)           

    return feetvalue + "' " + inchvalue + "\"";
  });

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<dd class="variation-Lengthyourequireft">
  <p>1.5</p>
</dd>
<dd class="variation-Lengthyourequireft">
  <p>2.5</p>
</dd>
&#13;
&#13;
&#13;