来自引号javascript的输入值

时间:2013-06-12 16:52:01

标签: javascript input quotes

如果我有这样的代码,有引号和作者,我怎样才能得到两个input type="text"框,我可以写两个名称,然后将名称显示在引号中代替“(随机用户) )“?

       

//store the quotations in arrays
quotes = [];

authors = [];

quotes[0] = "(randomuser) example (randomuser) example?";

authors[0] = "Authors!";

quotes[1] = "(random user) example (random user) example?";

authors[1] = "Authors!";

//calculate a random index
index = Math.floor(Math.random() * quotes.length);

//display the quotation

document.write("<DL>\n");

document.write("<DT>" + "\"" + quotes[index] + "\"\n");

document.write("<DD>" + " " + authors[index] + "\n");

document.write("</DL>\n");

//done

1 个答案:

答案 0 :(得分:0)

我认为您想要使用从几个<input>标记获得的字符串替换quotes数组中的(randomuser)。在这种情况下,您可以获得这些输入的内容,如下所示:

var user1 = document.getElementById("input1").value;
var user2 = document.getElementById("input2").value;

现在,您可以使用String.replace()替换“(randomuser1)”和“(randomuser2)”这些输入值,如下所示:

//Sub in the usernames
var newquote = quotes[0].replace("(randomuser1)", user1); //quotes[0] can of course be any index
newquote = newquote.replace("(randomuser2)", user2);

然后你可以显示newquote。请注意,您应该避免使用document.write()。相反,您可以在页面上创建一个显示div,然后将引号放入其中,如下所示:

var quotediv = document.getElementById("quoteDiv"); //get the div (or any other element) that you want to display the quote in
quotediv.innerHTML = newquote; //display your quote in the div.

JsFiddle example

修改

要从较大的列表中随机选择引用,您可以将quotes[0]更改为quotes[Math.floor(Math.random() * quotes.length)]之类的内容。要添加更多用户,您需要添加更多输入和更多替换语句。例如:

//Sub in the usernames
var ind = Math.floor(Math.random() * quotes.length); //select random quote
var newquote = quotes[ind].replace("(randomuser1)", user1);
newquote = newquote.replace("(randomuser2)", user2);
newquote = newquote.replace("(randomuser3)", user3);
newquote = newquote.replace("(randomuser4)", user4);
newquote = newquote.replace("(randomuser5)", user5);

对于大量用户来说,这可以简化为for循环,但我会让你弄清楚。