javascript - 计算两个 "</span>"之间的字符串(数字),并将其替换为值的一半

标签 javascript jquery

我有这个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/

相关文章:

javascript - 使用 jquery 更新特定类 div 中的文本

javascript - 在 Jquery 中渲染图像抛出 500(内部服务器错误)

javascript - 如何将 "reverse engineer"一个简单的 react 组件转换为纯 jquery

javascript - 无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型“TenantManagementWebApi.Entities.Tenant”

javascript - 如何禁用旧浏览器的网站?

javascript - 我通过 jquery 字符串发送跨站点伪造 token ,但在下一页上我生成一个新 token ,然后它们的 token 永远不会匹配

javascript - jquery ui 可在旋转的 div 中拖动

javascript - 在JS中将函数作为参数传递并访问接收函数的变量

javascript - Bootstrap 的工具提示未按示例所示样式设置?

javascript - 表中的删除按钮,jQuery