我有这个html:
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">₪</span>
13.9
</span>
我想显示一半的价格,例如在本例中是 13.9 的一半(代码在页面中出现多次,每次的数量不同)。
我尝试使用此方法捕获引号内的字符串:
var str = $(".tax-product_cat.term-185 .woocommerce-Price-amount").html();
var newStr = str.split("</span>")[1].split("</span>")[0];
var halfprice = parseInt(newStr, 10) / 2;
$(".tax-product_cat.term-185 .woocommerce-Price-amount").html("<span class='woocommerce-Price-amount amount'><span class='woocommerce-Price-currencySymbol'>₪</span>"+halfprice+"</span>");
但并没有真正发挥作用。
有什么想法吗? 谢谢!
最佳答案
获取 woocommerce-Price-currencySymbol
之后的文本元素,并操作其 textContent
。不幸的是,您不能对文本节点使用 ':last-child
选择器,因此这是下一个最佳方法。
const elements = document.querySelectorAll('.woocommerce-Price-currencySymbol')
for (let i = 0; i < elements.length; i++) {
const textNode = elements[i].nextSibling
textNode.textContent = parseFloat(textNode.textContent) / 2
}
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">₪</span> 13.9
</span>
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">₪</span> 14.9
</span>
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">₪</span> 15.9
</span>
关于javascript - 计算两个 "</span>"之间的字符串(数字),并将其替换为值的一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52333574/