2016-12-16 77 views
-2

的數組的值,則分裂返回值轉換成字符數組,就是說我已經嘗試過:拆分輸入到我想要得到的點擊輸入的值字符

window.onload = function() { 
 
    var textonaut = { 
 
    text: '', 
 
    letters: [] 
 
    }; 
 
    textonaut.text = document.getElementById('textonaut-text').value; 
 
    var go = document.getElementById('go-button'); 
 
    go.addEventListener('click', function(e) { 
 
    e.preventDefault(); 
 
    textonaut.letters = textonaut.text.split(''); 
 
    for(var i = 0; i < textonaut.letters.length; i++) { 
 
     console.log(textonaut.letters[i]); 
 
    }; 
 
    }); 
 
}
<input id="textonaut-text" type="text"><button id="go-button">go</button>

我想不通這是行不通的。

+0

在'textonaut.text'的textonaut變量是不確定的,聲明這個全局變量來 – iHasCodeForU

+4

的[我如何調試我的JavaScript代碼?]可能的複製(http://stackoverflow.com/questions/988363/how-can-i-debug-my-javascript-code) – Liam

+5

對不起,你傷心和生氣。閱讀[問]和如何創建[mcve]。 – Idos

回答

0

textonaut.text = document.getElementById('textonaut-text').value;放在你的addEventListener裏面回調。那麼它應該工作。

window.onload = function() { 
 
    var textonaut = { 
 
    text: '', 
 
    letters: [] 
 
    }; 
 

 
    var go = document.getElementById('go-button'); 
 
    go.addEventListener('click', function(e) { 
 
    e.preventDefault(); 
 
    textonaut.text = document.getElementById('textonaut-text').value; 
 
    textonaut.letters = textonaut.text.split(''); 
 
    for(var i = 0; i < textonaut.letters.length; i++) { 
 
     console.log(textonaut.letters[i]); 
 
    }; 
 
    }); 
 
}
<input id="textonaut-text" type="text"><button id="go-button">go</button>

如果設置的textonaut.text回調外的值,它會不管發生了什麼(這個值設置的JS文件加載時)保持爲''

addEventListener的回調函數在按鈕上的每個click處被觸發。這意味着在每個click上,值textonaut.text都被設置爲您的input中的所有內容。

閱讀addEventListener文檔以獲取更多信息。

+0

是的,這是答案。但你能解釋爲什麼它不能以另一種方式工作嗎?! – Timo

+0

好的...... Zakaria Acharki給出了答案,謝謝你們兩位! – Timo

+0

當'window.onload'事件結束時,通過在'go'點擊事件中移動這個asignment,您將'textonaut.text'的值賦值爲任何輸入字段文本是每次'去'被點擊 –

0

你應該得到的點擊不是之前之後的輸入值,所以放線:

textonaut.text = document.getElementById('textonaut-text').value; 

的回調中。

注意:現在寫在您的OP document.getElementById('textonaut-text').value將始終返回一個空字符串「」。

window.onload = function() { 
 
    var textonaut = { 
 
    text: '', 
 
    letters: [] 
 
    }; 
 

 
    var go = document.getElementById('go-button'); 
 
    go.addEventListener('click', function(e) { 
 
    e.preventDefault(); 
 

 
    textonaut.text = document.getElementById('textonaut-text').value; 
 
    textonaut.letters = textonaut.text.split(''); 
 
    for(var i = 0; i < textonaut.letters.length; i++) { 
 
     console.log(textonaut.letters[i]); 
 
    }; 
 
    }); 
 
}
<input id="textonaut-text" type="text"><button id="go-button">go</button>