我有这个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>");
但是并没有真正起作用。
有什么想法吗? 谢谢!
答案 0 :(得分:2)
在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>
答案 1 :(得分:1)
获取符号字符串,使用jQuery text()方法,并将其用作根跨度整个文本内容中的分割定界符。
$(".woocommerce-Price-amount").each(function(){
var symbol = $(this).find(".woocommerce-Price-currencySymbol").text();
var half = $(this).text().split(symbol)[1] / 2;
console.log(half);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<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> 13.9
</span>
<span class="woocommerce-Price-amount amount">
<span class="woocommerce-Price-currencySymbol">₪</span> 13.9
</span>