使用jquery将十进制转换为英尺和英寸时遇到问题
我试图用jQuery将十进制转换为英尺和英寸,但似乎找不到答案。(这是在Woocommerce购物车中) 这是我的HTML:使用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(零
<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 + "\"");
});
});