我是JS超级n00b。
我在这篇文章(Puzzling behavior from IF ( ) statement)中询问了关于IF语句的这个问题的一个方面,但看起来实际问题与我创建的变量的范围有关。似乎在声明(我认为是)全局变量之后,代码中的其他函数无法访问变量。
我正在做JS项目/程序,提示用户输入一个单词,程序会反转单词输入。
在上一篇文章(PP)中,用户正确地确定我得到的是“错误”字样。控制台消息(请参阅代码),无论输入单词的长度是多少,因为我在页面加载时为变量赋值,但在用户单击页面上的按钮时不再读取它。
如果变量'字'在当地,我只能得到一个“错误的”#39;控制台消息和变量' word'是全球性的,我只能得到一个引用错误。'
非常感谢任何人的任何想法。
请参阅以下JS代码:
var word = document.getElementById('wordChoice').value;
var lttrs = [];
function flipFail () {
alert("Please enter a word of at least two characters.");
console.log(false);
var inputErrArr = ['has-error', 'has-feedback'];
var inputErrFdbk = ['glyphicon', 'glyphicon-remove'];
wordChoice.style.backgroundColor = "#FFDBAA";
for (var i = 0; i < inputErrArr.length; i ++) {
addClass(wordInput, inputErrArr[i]);
}
for (var i = 0; i < inputErrFdbk.length; i ++) {
addClass(glyph, inputErrFdbk[i]);
}
document.getElementById('wordChoice').value = " ";
} // END flipFail()
function flipSuccess (){
for (var i = 0; i < word.length; i ++) {
lttrs.push(word.charAt(i));
}
lttrs.reverse();
var reversedWord = lttrs.join('')
alert("Your reversed word is: " + reversedWord);
console.log(true);
document.getElementById("flip").innerHTML = "Flip Again!";
document.getElementById('wordChoice').value = " ";
} // EN flipSuccess ()
function flipChk () {
if (word.length < 2) {
flipFail ();
} else {
flipSuccess ();
}
}
请在此处查看完整实施的代码:http://supsean.com/supsean/flipr/flipr.html
答案 0 :(得分:0)
您需要在flipChk()
中设置function flipChk () {
var word = document.getElementById('wordChoice').value;
if (word.length < 2) {
flipFail ();
} else {
flipSuccess (word);
}
}
function flipSuccess (word){
var lttrs = [];
for (var i = 0; i < word.length; i ++) {
lttrs.push(word.charAt(i));
}
lttrs.reverse();
var reversedWord = lttrs.join('')
alert("Your reversed word is: " + reversedWord);
console.log(true);
document.getElementById("flip").innerHTML = "Flip Again!";
document.getElementById('wordChoice').value = " ";
} // EN flipSuccess ()
。您在首次加载页面时,在用户在表单中输入任何内容之前进行设置,而不是在用户单击“翻转”按钮时进行设置。
然后,不是使用全局变量,而是将其作为参数传递给函数。通常,除非确实需要,否则请避免使用全局变量。
LinearLayout