javascript - 计算两个“”之间的字符串(数字),并将其替换为值的一半
问题描述
我有这个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>
推荐阅读
- vim - 从系统中隐藏 gvim
- ruby-on-rails-4 - Rails Google Oauth2 - 项目中未使用旧版 People API
- c# - 如何动态生成 blazor 的@bind-Value?
- delphi - 如果发生异常或发生特定条件,则执行除节以外的部分
- android - 从云托管的 sql 服务器获取 android 应用程序上的数据
- scala - 字符串拆分 - 按标签拆分
- bluetooth - 我们可以将android智能手机蓝牙角色更改为奴隶吗
- excel - 对象“形状”的“表格”方法失败 - PowerPoint
- python - 使用日期列或插入新的索引列?
- kubernetes - 从主机系统恢复 kubeconfig