【问题标题】:Newbie needs some assistance新手需要一些帮助
【发布时间】:2013-06-18 06:28:05
【问题描述】:

我的代码是这样的:

<script language="Javascript" type="text/javascript">
var input;
var w1,w2,w3,w4,w5,w6,w7,w8,w9,w10;
var w1 = ' ';
var w2 = ' ';
var w3 = ' ';
var w4 = ' ';
var w5 = ' ';
var w6 = ' ';
var w7 = ' ';
var w8 = ' ';
var w9 = ' ';
var w10 = ' ';

do {
    alert("Enter 10 words");
    w1 = prompt("Enter First Word", " ");
    w2 = prompt("Enter Second Word", " ");
    w3 = prompt("Enter Third Word", " ");
    w4 = prompt("Enter Fourth Word", " ");
    w5 = prompt("Enter Fifth Word", " ");
    w6 = prompt("Enter Sixth Word", " ");
    w7 = prompt("Enter Seventh Word", " ");
    w8 = prompt("Enter Eighth Word", " ");
    w9 = prompt("Enter Nineth Word", " ");
    w10 = prompt("Enter Tenth Word", " ");
} while(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10 == " ");

var myWords = new Array(10);
myWords[0] = w1;
myWords[1] = w2;
myWords[2] = w3;
myWords[3] = w4;
myWords[4] = w5;
myWords[5] = w6;
myWords[6] = w7;
myWords[7] = w8;
myWords[8] = w9;
myWords[9] = w10;

    for(i = 0; i < myWords.length; i++) {
        document.write(myWords[i] + "<br/>");
    } 
    document.write(myWords[0] + "<br/>");
    document.write(myWords[1] + " " + myWords[2] + "<br/>");
    document.write(myWords[3] + " " + myWords[4] + " " + myWords[5] + "<br/>");
    document.write(myWords[6] + " " + myWords[7] + " " + myWords[8] + " " +     myWords[9] + "<br/>");
</script>

如何将其更改为一个 prompt() 而不是十个?

【问题讨论】:

标签: javascript


【解决方案1】:

将单词保存在数组中,然后使用 for 循环提示用户输入每个单词。

var words = new Array(10);

alert("Enter " + words.length + " words");

for(var i = 0; i < words.length; i++) {
    words[i] = prompt("Enter Word " + (i + 1), " ");
}

【讨论】:

  • 我还记得我第一次了解数组的时候——这可能是我最年轻的记忆,突然看到了一个充满机遇的世界!
  • @Justin 谢谢,它很好地清理了我的脚本,但是仍然没有得到我想要的提示功能。甚至可能都不可能。我基本上需要将所有十个单词放在一个提示中,然后仍然在浏览器中进行分层输出。
  • @user2494640 见NULL's answer。唯一不正确的部分是他没有告诉你不要使用document.write
【解决方案2】:
var myWords = [],
    word,
    thList = ['First', 'Second', 'Third', 'Fourth', 'Sixth', 'Seventh', 'Eighth', 'Nineth', 'Tenth'],
    i = 0,
    len = thList.length;

    for ( ; i < len; i++ ) {
        do {
            word = prompt("Enter " + thList[i] + " Word", " ");
        } while ( word == " " );
        myWords.push(word);
    }

// And then the document.write part

【讨论】:

  • 你能推荐别的东西来代替document.write吗?
  • ... 没有。评论不会削减它。请提出替换建议。
  • @JanDvorak 您正在尝试回答另一个问题,然后 OP 正在询问。
  • 您的回答是试图符合 OP 的要求,还是实际上教他一些东西?
  • 如果使用得当,document.write 绝对没有问题。它只是一个工具。而已。无需惊慌。
【解决方案3】:

这样的东西可能适用于提示。

var words = prompt("Enter 10 words, separated by commas", "");
var array = words.split(" ");

你有你的数组,然后做你的 for 循环或其他东西:P

【讨论】:

  • 当然,但是用户输入的逗号呢?你永远不会删除它们
  • 这更近了。但是最后的一些字符被切断了。我只需要稍微调整一下。
  • 感谢大家的帮助。非常感谢。
  • 所以我接受了@ekreutz 的回答并添加了我的 for 循环。所以我的成品看起来像这样(我意识到大多数人都不支持 document.write ......我只是还没有被教导为什么)。 var words = prompt("请输入 10 个单词", ""); var array = words.split(" "); for(i = 0; i "); } //在这里添加了我的 document.write 层。 (我知道,我知道......对不起 :) )就像一个魅力。再次感谢大家的所有帮助。非常感谢。