簡體   English   中英

Greasemonkey腳本對類的更改值(乘法)

[英]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€”

首先,在應用任何修改之前,您必須遍歷每個元素。 (這里我將querySelectorAllforEach一起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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM