是否可以用 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;
}
另外 运行 遇到了这个解决方案的一个新问题,但这是一个小问题,每次我切换标签时它都会使价格成倍增加,但我确信这是一个快速的解决方案!
谢谢!
过去几天我一直在尝试为我的浏览器扩展编写一些代码,但我一直坚持转换网站上的价格。
到目前为止,我意识到我可以通过 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;
}
另外 运行 遇到了这个解决方案的一个新问题,但这是一个小问题,每次我切换标签时它都会使价格成倍增加,但我确信这是一个快速的解决方案!
谢谢!