我想创建一个功能,将价格作为动态内容并计算分期付款。我尝试了几种方法但它们不起作用。不幸的是我没有收到错误信息。
也许你可以帮助我湿透的大脑。非常感谢你提前
var wrapper = document.getElementsByClassName('article-price')[0];
var secondwrapper = wrapper.getElementsByTagName('span')[0];
var price = secondwrapper.getElementsByTagName('span')[0];
var installment = document.getElementById('installment');
installment.innerHTML = (price.innerHTML / 12).toFixed(2);
<span class="article-price">
<span>
<span>149,99</span>
<span>€</span>
</span>
</span>
<div>your installment is <span id="installment"></span></div>
用var price = secondwrapper.getElementsByTagName('span')[0];
替换var price = parseFloat(secondwrapper.getElementsByTagName('span')[0].innerHTML.replace(',','.'));
以获取span的内容并用点替换逗号以将字符串作为浮点数。如果你不替换用点替换逗号,JavaScript将不会理解'149,99'是一个数字并且只保留'149',因为,
不被识别为小数分隔符,而.
是。 getElementsByTagName
将为您提供整个标签,而不仅仅是您想要的内部价值。然后在最后一行,删除price.innerHTML
到price
,因为你已经提前转换了它。
这是一个帮助你的片段
var wrapper = document.getElementsByClassName('article-price')[0];
var secondwrapper = wrapper.getElementsByTagName('span')[0];
var price = parseFloat(secondwrapper.getElementsByTagName('span')[0].innerHTML.replace(',','.'));
var installment = document.getElementById('installment');
installment.innerHTML = parseFloat(price / 12).toFixed(2) + " €";
<span class="article-price">
<span>
<span>149,99</span>
<span>€</span>
</span>
</span>
<div>your installment is <span id="installment"></span></div>
我希望我的回答对你有帮助!
var wrapper = document.getElementsByClassName('article-price')[0];
var secondwrapper = wrapper.getElementsByTagName('span')[0];
var price = secondwrapper.getElementsByTagName('span')[0];
var installment = document.getElementById('installment');
installment.innerHTML = (parseFloat(price.innerHTML) / 12).toFixed(2);
<span class="article-price">
<span>
<span>149,99</span>
<span>€</span>
</span>
</span>
<div>your installment is <span id="installment"></span></div>
它可能是跨越范围内的逗号。不确定它是否可行,但您可以尝试使用parseFloat,它应该将其读作数字或parseInt;
您只需更改最后一行代码:
installment.innerHTML = (parseFloat(price.innerHTML.replace(/\,/g,"")) / 12).toFixed(2);
请检查以下可能有用的代码
$(document).ready(function(){
var wrapper = document.getElementsByClassName('article-price');
alert(wrapper);
var secondwrapper = wrapper[0].getElementsByTagName('span')[0];
alert(secondwrapper.innerHTML);
var price = secondwrapper.getElementsByTagName('span')[0];
alert(price.innerHTML);
var installment = document.getElementById('installment');
installment.innerHTML = (parseFloat(price.innerHTML) / 12).toFixed(2);
});
而不是包装器,你必须使用包装器[0],它将指向跨度的第零位置,而且你必须将文本更改为浮动
installment.innerHTML = (parseFloat(price.innerHTML) / 12).toFixed(2);