2016-09-25 64 views
-2

有一個隨機產生一個數字的網頁,例如"Frequency : 21"。我正在嘗試創建一個腳本,它將數字21與其他變量進行比較,然後將其與if else函數進行比較。基本上,我完成了大部分,但我無法獲得號碼21。而且由於它是隨機的,我不能把固定的價值。
任何人都可以幫我嗎?我想從使用JavaScript的大型網頁獲取文本的某個部分,我該怎麼辦?

我的代碼是這樣:

setTimeout(MyFunction,5000) 

function MyFunction(level,legmin) { 
    var level = x 
    var legmin = 49 
    if (level <= legmin) { 
    location.reload(true) 
    } 
    else { 
    alert("Met requirements.") 
    } 

,我想文本的地址是:

html>body>div#container>div#contentContainer>div#content> 
div#scroll>div#scrollContent>div>div>div#pkmnappear>form>p (x in the code above). 
+0

你在你的問題提供了一個選擇。 JavaScript具有'querySelector'和'querySelectorAll',它們使用CSS風格的選擇器來選擇元素。因此...''var level = Number(document.querySelector(「div#pkmnappear> form> p」)。textContent)' – 2016-09-25 13:28:12

+0

如果單詞'Frequency:'在那裏,那麼在轉換之前使用基本字符串方法將其刪除它到一個'數字'。 – 2016-09-25 13:32:55

+0

問題不明確。 – zioMitch

回答

0

快速正骯髒的解決方案,而正則表達式。

var lookFor = "Frequency : "; 
var text = document.querySelector("#pkmnappear>form>p").textContent; 
var level = text.substr(text.indexOf(lookFor) + lookFor.length).split(" ")[0]; 

這是假設的數量之後,將一個空間

+0

謝謝。如果我們進一步使情況複雜化,就像網頁可能會產生一個值或顯示一些文本。即使這個價值是隨機的。在這種情況下,如果我想重新加載,直到獲得大於50的值,那我該如何去做?我嘗試過,但被卡在文本部分。 (文本部分在div> div> div#pkmnappear) –

+0

@ParthMane:要檢查我的代碼中的'level'是否大於50的數字,你應該'var levelNum = Number(level); var isGreaterThan50 =(Number.isFinite(levelNum)&& levelNum> 50)'。我不明白你的重新加載的意思,所以如果你需要更多的幫助,請進一步解釋。 – Drkawashima

+0

重新加載的部分是重新加載頁面,直到獲得所需的頻率。這部分很簡單,否則{reload(true)} –

相關問題