我是使用JavaScript
进行编程的新手。如何重复从<input type="text">
元素value
检索的字符串值,使用从同级<input>
元素检索的数字重复该字符串,然后设置.innerHTML
的{使用<div>
生成重复字符串的{1}}元素?我尝试了以下方法,但未返回预期结果。在我目前的尝试中,我做错了什么?有没有更简单的方法来实现预期的结果?
JavaScript
function repeatWord(str, num) {
num = Number(num);
var result = '';
while (true) {
if (num & 1) { // (1)
result += str;
}
num >>>= 1; // (2)
if (num <= 0) break;
str += str;
}
return result;
}
</script>
<html>
<head>
<title></title>
<style type="text/css">
body {
background-color: #D3D3D3;
font-family: arial;
text-align: right;
color: #008B8B;
}
#contentwrap {
border: 8px #800000 solid;
padding: 20px;
width: 600px;
border-radius: 25px;
text-align: right;
background: white;
margin: 40px auto 0px auto;
}
#formwrap {
text-align: center;
margin: 0px 0px 60px 0px;
min-height: 300px;
}
#title {
font-size: 2.2em;
border-bottom: 7px #008B8B double;
padding: 10px 0px 10px 0px;
color: #008B8B;
text-align: center;
}
#formtext {
text-align: center;
margin-top: 5px;
}
.formfield {
text-align: center;
margin: 5px 20px 10px 20px;
}
#button {
border-radius: 20px;
}
#results {
font-size: 1em;
}
</style>
</head>
<body>
<div id="contentwrap">
<div id="title">Fun with Loops</div> <br />
<div id="formwrap">
<form>
<div id="formtext">Enter any word</div>
<input type="text" id="word" class="formfield" size="20" /> <br />
<div id="formtext">Enter number of times to repeat word</div>
<input type="text" id="repeatnum" class="formfield" size="20" /> <br />
<input type="button" value="Show Output" id="button" onClick="repeatWord()" />
</form>
<div id="results"></div>
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
函数repeatWord
返回预期结果。
问题是您没有将任何参数传递给函数,函数的返回值不会被进一步处理。 DOM
函数调用中未引用repeatWord
元素。没有元素使用.textContent
的返回值设置.innerHTML
或repeatWord
。
注意,您可以使用console.log()
检查函数调用中的值或函数的返回值。例如,console.log(result)
。另请参阅What is the scope of variables in JavaScript?。
您可以替换input type="number" for
输入类型=&#34;文字&#34; as
#repeatnum element, with
min attribute set to
0 ,
max {{1 10`或其他正数值,作为正数似乎是元素的期望值。
定义变量以引用具有attribute set to
s id
,word
,repeatnum
的元素,以引用results
函数调用中的元素。
从repeatWord
和.value
元素中获取#word
个;将#repeatnum
设置为str
#word
,设置.value
并将num
#repeatnum
传递给.valueAsNumber
构造函数。
完成Number
循环后,将while
#results
设为.textContent
。
result
&#13;