是否可以用 JavaScript 将网站上的现有价格替换为转换后的价格?

Is it possible to replace the existing price on a website to a converted one with JavaScript?

过去几天我一直在尝试为我的浏览器扩展编写一些代码,但我一直坚持转换网站上的价格。

到目前为止,我意识到我可以通过 document.querySelectionAll('.price__blocks') 在技术上获得一系列价格,但它不允许我的代码 运行 在操场上为我工作,因为它给出一个错误:*VM8032:2 Uncaught TypeError: nodes[i].replace is not a function* 在 :2:38

游乐场代码

vals = ["80.00$", "50.00$", "70.00$", "69.99$"];
for (var i = 0; i < 4; ++i){
var priceNum = parseFloat(vals[i].replace(/$/g, ""))
priceNum = priceNum * 0.000020 + " BTC"
console.log(priceNum)
}

vals = ["80.00$", "50.00$", "70.00$", "69.99$"];


for (var i = 0; i < 4; ++i){
  var priceNum = parseFloat(vals[i].replace(/$/g, ""))
  priceNum = priceNum * 0.000020 + " BTC"
  console.log(priceNum)
}

实际代码

var nodes = document.querySelectorAll('.price__block')
for (var i = 0; i < nodes.length; ++i){
var priceNum = parseFloat(nodes[i].replace(/€/g, ""))
priceNum = priceNum * 0.000020 + " BTC"
nodes[i].innerHTML = priceNum;
}

var nodes = document.querySelectorAll('.price__block')
for (var i = 0; i < nodes.length; ++i){
    var priceNum = parseFloat(nodes[i].replace(/€/g, ""))
    priceNum = priceNum * 0.000020 + " BTC"
    nodes[i].innerHTML = priceNum;
  }

我将附上屏幕截图以便更好地理解我的问题images of VisualStudio Code and Playground

根据您的实际代码,您试图从元素调用替换函数,替换函数只能在字符串上调用。

要解决此问题,您可能需要执行以下操作:

var nodes = document.querySelectorAll('.price__block')
for (var i = 0; i < nodes.length; ++i){
    var priceNum = parseFloat(nodes[i].innerHTML.replace(/€/g, ""))
    priceNum = priceNum * 0.000020 + " BTC"
    nodes[i].innerHTML = priceNum;
  }

感谢 ProfesorAbronsius 教授,我得到了解决方案!

var nodes = document.querySelectorAll('.price__block')

for (var i = 0; i < nodes.length; ++i){
    var priceNum = parseFloat(nodes[i].textContent.replace(/€/g, ""))
    priceNum = priceNum * 0.000020 + " BTC"
    nodes[i].innerHTML = priceNum;
  }

另外 运行 遇到了这个解决方案的一个新问题,但这是一个小问题,每次我切换标签时它都会使价格成倍增加,但我确信这是一个快速的解决方案!

谢谢!