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

使用jquery将十进制转换为英尺和英寸时遇到问题,jquery,Jquery,我试图用jQuery将十进制转换为英尺和英寸,但似乎找不到答案。(这是在Woocommerce购物车中) 这是我的HTML: <dd class="variation-Lengthyourequireft"> <p>1.5</p> </dd> <dd class="variation-Lengthyourequireft"> <p>2.5</p> </dd> 我的脚显示正确,但英寸返回0(零

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

这是我的HTML:

<dd class="variation-Lengthyourequireft">
  <p>1.5</p>
</dd>
<dd class="variation-Lengthyourequireft">
  <p>2.5</p>
</dd>
我的脚显示正确,但英寸返回0(零)

示例:

1'0.。(应该是1'6.。)在添加
parseFloat()
之前,我只得到了“NaN'NaN”


我发现其中一个问题是同一HTML标记有多个实例(在本例中为

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

$(文档).ready(函数(){
$(“dd.variation-length-yourequireft>p”).text(函数(i,oldText){
var thenum=parseFloat(oldText),
feetvalue=Math.floor(thenum),//仅返回英尺值
inchvalue=Math.round(((thenum)%1)*12);//只返回(英寸)
返回feetvalue+“'”+inchvalue+“\”;
});
});

1.5

2.5


我的价值是6英寸。你能为我们添加一个片段来看看你的结果吗?对我来说效果很好,这里有一个快速的提琴:嗯,这真是一个让人头疼的问题。当我使用警报时,它对我有效。现场网站是www.steelbuildingcomponents.com。如果你选择床单或修剪,选择一个尺寸(英尺和英寸)并添加到购物车,然后查看购物车,你就会明白我的意思。我自己试了几次。第一次尝试成功了。当我添加更多时,它又回到了零。@Tony只是将函数最后一行的
$(“dd.variation-Lengthyourequireft>p”)
替换为
$(this)
,因此您引用了循环中当前的
元素。非常感谢,@Rhumborl和Barmar。你的两个建议都奏效了。然而,当我实现它时,它仍然显示0表示英寸。如果您访问www.steelbuildingcomponents.com,购买板材并将多个实例添加到购物车中,您将看到显示测量结果的javascript警报。我的购物车中有两件物品,警报显示4次。前两个以英尺和英寸为单位正确显示了这两个项目的测量值。但是它们再次相互循环,并在之后的几英寸内显示0。jquery代码在循环中并重新计算测量值,导致0。当我意识到这一点时,我将代码放在循环之外,现在它可以正常工作了。谢谢你的帮助!:)
$(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 + "\"");
    });

});