我在学校有一份工作,但我完全被困了。
我的任务: 制作一个要求文本的程序,然后多次写出文本。首先只有一个字母,然后是两个,依此类推。例如,如果用户写了#34; Thomas",你的程序应该写出" T"," Th," Tho," Thom"等等。
我无望的尝试 我一直试图使用" Substring"以及让它发挥作用的循环,但我不确定我是否在正确的道路上。现在我的代码看起来像这样:
<head>
<meta charset= "UTF-8"/>
<title> assignment14 - Johan </title>
<script type="text/javascript">
var text= test.length;
for (i=0;i< test.length;i++)
function printit()
{
var str = test;
var res = str.substring (i, 2);
document.getElementById("test").innerHTML = res;
}
</script>
</head>
<body>
<h1>Assignment 14</h1>
<form name="f1">
<input type="text" id="test" value="" />
<input type="button" value="Hämta" onclick="printit(document.getElementById('test'))" />
</form>
</body>
只需要某种提示如果我正朝着正确的方向前进,我应该使用其他功能吗?非常感谢您的帮助。
答案 0 :(得分:0)
你是正确的方式。 javascript中的substring(start,end)
为您提供从start
索引到end
的字符串连续部分。你只是以错误的方式使用它来处理你的情况。你必须这样称呼它:
substring(0,i)
答案 1 :(得分:0)
你必须重写一个脚本。当你想逐个提取时,你可以使用substring();
函数。
如何致电: StringObject.substring (StartPoint,endPoint);
<强>解决方案:强>
<script type="text/javascript">
function printit(){
var test=document.getElementById("test").value;
var text= test.length;
for (i=0;i<= text;i++)
{
var res = test.substring (i, 0);
document.write(res);
document.write("<br/>");
}
}
</script>
答案 2 :(得分:0)
您需要对代码进行一些更改: 1)在onclick上的printit函数调用中使用document.getElementById('test')。value,因为你必须发送文本框的值而不是innerHTML。 2)修改原理功能 -
function printit(test)
{
document.getElementById('test').value=''; /*remove existing text from textbox*/
for (i=0;i< test.length;i++) {
var res = str.substring (0, i+1);
document.getElementById("test").value += ' '+res;
}
}
在printit函数中清空文本框,然后将每个子字符串附加到现有文本以获得“T Th Tho Thom ..”等等 希望这会有所帮助。
答案 3 :(得分:0)
我没有使用for
- 循环(只要有可能,我更喜欢功能风格)。相反,我编写了一个返回子串数组的函数:
const substrings = string =>
Array.from(string).map((_, i) => string.slice(0, i + 1))
答案 4 :(得分:0)
使用substring()
方法输出几次可以如下完成,创建function
执行此任务,使用button
在forloop
点击时提取用户输入的字符串, substring()
方法。
var intp = document.querySelector("input");
var btn = document.querySelector("button");
var dv = document.querySelector("div");
btn.onclick = function() {
var b = intp.value;
for (var i = 1; i <= b.length; i++) {
var c = b.substring(0, i);
dv.innerHTML += c + "<br/>";
}
}
div{
width:400px;
background:#111;
color:yellow;
}
<input type="text">
<button>Click</button>
<br/><br/>
<div></div>
您已使用正确的方法执行此操作,但正如用户之一所示,start
的{{1}}和end
值不正确。