在循环内重复单词

时间:2016-10-27 23:36:22

标签: javascript css

我是使用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>

1 个答案:

答案 0 :(得分:1)

函数repeatWord返回预期结果。

问题是您没有将任何参数传递给函数,函数的返回值不会被进一步处理。 DOM函数调用中未引用repeatWord元素。没有元素使用.textContent的返回值设置.innerHTMLrepeatWord

注意,您可以使用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 idwordrepeatnum的元素,以引用results函数调用中的元素。

repeatWord.value元素中获取#word个;将#repeatnum设置为str #word,设置.value并将num #repeatnum传递给.valueAsNumber构造函数。

完成Number循环后,将while #results设为.textContent

&#13;
&#13;
result
&#13;
&#13;
&#13;