0

** 更新:

jsfiddle.net/terra823/WA6sX

我基本上是在寻找文本输入并将输入文本与一个名为 magic_words 的数组进行比较。如果匹配,则将屏幕变为蓝色,如果不匹配,则将屏幕变为绿色。到目前为止,当我进行匹配时,它会将屏幕变为蓝色,但在进行初始匹配后似乎并没有继续比较。如果有人知道编写函数的更好方法 - 也许使用正则表达式 - 我将非常感谢您的帮助!

** 旧帖:

我正在编写一些 Javascript 代码,这些代码获取用户输入的内容并将其与我拥有的数组进行比较。如果它与某些单词匹配,则会触发更改。我正在工作的那部分代码,但是,在触发所述事件后,我希望页面返回到默认状态。换句话说,用户在默认状态下开始页面,在写作过程中,他通过输入数组中的特定单词来触发事件,一旦他继续输入,他就会返回到默认状态。这是我为该功能所拥有的:

function handleChange(){
        var newText=input.value;
        if (newText==oldText)return; else oldText=newText;
            set(reversed, reverse(newText));
            set(count, 'You entered '+newText.length+' characters.');
            set(orig, newText);

// 魔法词数组

        var magic_words = ["cool", "brother", "fun", "sister", "apple", "orange"];

// 屏幕背景

        var box = document.getElementById("box");

// splitEnds 采用 newText 并将输入文本的整个字符串拆分为单词,方法是在 SPACE 处拆分字符串

        var splitEnds = newText.split(" ");

// 屏幕最初是白色的

        var color = "white";

// 当用户开始时,屏幕变绿只是表示用户已经开始

            if(newText != " ") {
                color = "green";
            }

// 在数组中查找所有的magic_words

            for (var i = 0; i < magic_words.length; i++) {

// 浏览所有 INPUT 字符串文本,这些文本被分成单独的单词

                for(var x = 0; x < splitEnds.length; x++){

// 如果用户已经开始输入并且他们输入了一个magic_word 将屏幕变为蓝色

                    if(color == "white" || color == "green") 
                        if (magic_words[i] == splitEnds[x]) {
                            color = "blue"; 
                        break;
                    } 

// 我需要告诉函数继续分析文本以查看是否匹配。现在它坚持蓝色

                }
            }

            box.style.backgroundColor = color;
        }

感谢任何帮助。

谢谢,最好的,

4

1 回答 1

0

我真的不确定你在找什么,但只是在你把它改成蓝色后把它改回绿色。

          box.style.backgroundColor = color;
            setTimeout(function(){
                box.style.backgroundColor = 'green';
            },1000);
于 2013-02-27T02:36:28.857 回答