[英]Greasemonkey Script change value on Class (multiplication)
我想加載一個將價格轉換為我的貨幣的網站,因此我需要將跨度內的值乘以一個常數。 舉個例子:
109€我需要腳本將該范圍內的值相乘並打印不帶歐元符號的結果。
// ==UserScript== // @name PriceChanger // @version 1 // @grant none // @include *://*.website.com/* // ==/UserScript== document.getElementsByClassName("prod-price").innerHTML = getElementsByClassName("prod-price") * 2;
預期結果:“ 218”而不是“ 109€”
首先,在應用任何修改之前,您必須遍歷每個元素。 (這里我將querySelectorAll
與forEach
一起forEach
)
然后,您需要分割初始內容以分別檢索價格為數字的價格:
document.querySelectorAll(".prod-price").forEach(price => { price.innerHTML = +price.textContent.split(' ')[0] * 2 + ' X'; });
<p class="prod-price">108 €</p> <p class="prod-price">38 €</p> <p class="prod-price">405 €</p>
var elem=document.getElementsByClassName("primary");
//you can loop this second part
var temp = elem[0].innerHTML;
var tempsubstring=temp.substr(1,6);
//i put a 6 for the end in case u get some longer prices and it works if it is shorter as well. u might also put like 15 if ure gona have some super long prices
elem[0].innerHTML="Yourcurrency"+tempsubstring*2;
我再次編輯了我的回復。 現在我對此進行了測試,它可以正常工作,因此您可以復制整個內容。 如果可以,請接受答案。
只需在我評論的地方添加一個循環。
var elem=document.getElementsByClassName("primary");
var i;
for (i=0;i<elem.length;i++){
var temp = elem[i].innerHTML;
var tempsubstring=temp.substr(1,6);
elem[i].innerHTML="Yourcurrency"+tempsubstring*2;
}
最終解決方案使用“ primary”類更改頁面上的所有價格,省略了€符號,並改為投放了USD廣告:
// ==UserScript==
// @name price
// @version 1
// @grant none
// @include *://*.domain.com/*
// ==/UserScript==
document.querySelectorAll(".primary").forEach(price => {
price.innerHTML = 'USD ' + price.textContent.split(' ')[0] * 2;
});
此解決方案是一個臨時解決方案,它不會為涉及小數的運算提供正確的輸出,而是顯示NAN錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.