Javascript返回未定义的html标记,但在开发人员控制台中显示结果
我在html页面的textarea上呈现此代码的输出时遇到问题,但它在控制台上运行并显示正确的输出。下面是html和javascript代码。。谢谢Javascript返回未定义的html标记,但在开发人员控制台中显示结果,javascript,html,matrix,console,spiral,Javascript,Html,Matrix,Console,Spiral,我在html页面的textarea上呈现此代码的输出时遇到问题,但它在控制台上运行并显示正确的输出。下面是html和javascript代码。。谢谢 <body> <div class="input"> <div class="numb"> <form class="form-group" name="number" id="number"> <input id="textbox" type="
<body>
<div class="input">
<div class="numb">
<form class="form-group" name="number" id="number">
<input id="textbox" type="text" name="textbox" placeholder="Enter N">
<button type="button" name="submit" id="button" onclick="final()">Get Matrix</button>
</form>
</div>
<div class="result">
<textarea id="spiral" name="spiral" placeholder="matrix"></textarea>
</div>
</div>
因此,如果我从页面中输入n,我会得到开发人员控制台中显示的n矩阵,但不会在html页面节点中显示,您的
print
函数不会返回值,因此text
是未定义的。添加类似于returnline.toString()的内容
在您的打印
功能结束时。您没有从打印功能返回任何内容;这里更新了fiddle以连接文本并返回矩阵中的文本
在打印功能中的控制台后添加:
text = text+line.toString()+'\n'
最后执行一个返回文本
您的打印
函数不返回任何内容,并且让text=print(螺旋(输入),“”)
因此不会将输出放入文本中;
function print(input, paddingChar) {
const longest = (input.length * input.length).toString().length;
const padding = paddingChar.repeat(longest);
for (let y = 0; y < input.length; y++) {
let line = "";
for (let x = 0; x < input.length; x++) {
line += (padding + input[x][y]).slice(-longest) + " ";
}
console.log(line.toString());
}}
function final() {
input = document.getElementById("textbox").value;
let text = print(spiral(input), " ");
document.getElementById("spiral").innerHTML = text}
`let text = ''
text = text+line.toString()+'\n'