这里我有一个简短的脚本,它会提示用户输入一个消息和一个数字值,然后重复该消息给定的次数。我继续收到消息变量的undefined。
<!doctype html>
<html lang="en">
<head>
<title>4</title>
</head>
<body>
<p id="change"> Launch this script</p>
<script type="text/javascript">
var x;
var text = "";
var message = prompt("Enter message here", "Leave a message");
text == message;
var number = parseInt(prompt("Enter a Value"));
for (x=0; x<number; x++)
{
text += message.length[x] + "<br>";
}
document.getElementById('change').innerHTML = text;
</script>
<br />
</body>
</html>
答案 0 :(得分:3)
我假设您有两个问题:
此行无效
text == message;
因为您使用了等于运算符(==
)而不是赋值运算符(=
),所以它等同于编写
false;
你的for循环中有一行无效语法
message.length[x]
这应该会给你错误,因为你试图将([]
)索引到字符串的length
属性中,这是一个整数,而不是一个数组。该语法只能用于对象和数组。根据您的要求,您应该自己附加message
变量。
所有这些都是考虑到这一点,这是我修改代码的注意事项(通过评论中的说明进行了更正):
<script type="text/javascript">
// Don't need x here
// Get your message, good
var message = prompt("Enter message here", "Leave a message");
// Set up an empty string variable to collect your concatenations. If you
// set it to message right away, an input of 0 will actually produce
// one line to be output, which is not 0!
var text = '';
// This is ok, but add a radix for good practice (it says this is
// a base-10 value)
var number = parseInt(prompt("Enter a Value"), 10);
// You simply want to copy message number times, so just
// keep appending it to your text with a separator
for (var x = 0; x < number; x++) { // Define x here ("var")
text += message + "<br>";
}
// Set the string
document.getElementById('change').innerHTML = text;
</script>