2016-07-04 32 views
0

我想學習JS,我有幾個練習,我試圖解決,以改善。目前,我試圖找出一個數字是否是迴文數,並且我有這個代碼,但它似乎不起作用,因爲我知道我在輸入中插入的所有數字都是迴文。試圖找到一個數字是否迴文在JS

<input type="text" class="screen"> 
<button type="button" class="btn">Check</button> 


var strg = document.querySelector(".screen").value; 
var pal = strg.split("").reverse("").join(""); 

document.querySelector(".btn").addEventListener("click", function(){ 
    if (strg == pal) { 
    console.log(strg+" is a palindrome"); 
    } 
    else { 
    console.log(strg+" is not a palindrome"); 
    } 
}) 

https://jsfiddle.net/Lw6uk8kb/

欣賞的幫助。

回答

2

你必須到處理器裏面的前兩行移動,以及:

document.querySelector(".btn").addEventListener("click", function(){ 
    var strg = document.querySelector(".screen").value; 
    var pal = strg.split("").reverse("").join(""); 
    if (strg == pal) { 
     console.log(strg+" is a palindrome"); 
    } 
    else { 
     console.log(strg+" is not a palindrome"); 
    } 
}); 

否則你將永遠查詢.screen相同的(空?)值。

+0

它現在,感謝幫助。 –

1

使用如下代碼:

document.querySelector(".btn").addEventListener("click", function(){ 
    var strg = document.querySelector(".screen").value; 
    var pal = strg.split("").reverse("").join(""); 
    if (strg == pal) { 
    console.log(strg+" is a palindrome"); 
    } 
    else { 
    console.log(strg+" is not a palindrome"); 
    } 
}) 

這工作,因爲你將計算在時刻迴文(後),你點擊按鈕。在您的代碼中,所有計算在所有腳本加載後立即運行。

0

您沒有使用實際值更新您的變量。
只是將它們移動內部事件處理程序:

document.querySelector(".btn").addEventListener("click", function(){ 
var strg = document.querySelector(".screen").value; 
var pal = strg.split("").reverse().join(""); 
if (strg == pal) { 
    console.log(strg+" is a palindrome"); 
} else { 
    console.log(strg+" is not a palindrome"); 
} 
}) 
相關問題