Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可能';我使用了过量的innerHTML并没有定义_Javascript_Html - Fatal编程技术网

Javascript 我可能';我使用了过量的innerHTML并没有定义

Javascript 我可能';我使用了过量的innerHTML并没有定义,javascript,html,Javascript,Html,函数promptuj(){ 这个.x=prompt(“您的乘法表应该有多大?”); document.getElementById(“keks”).innerHTML=tabliczka(this.x); } 函数tabliczka(){ document.getElementById(“keks”).innerHTML+=“”; 对于(i=1;i尝试以下方法: <script type="text/javascript"> function promptuj()

函数promptuj(){
这个.x=prompt(“您的乘法表应该有多大?”);
document.getElementById(“keks”).innerHTML=tabliczka(this.x);
}
函数tabliczka(){
document.getElementById(“keks”).innerHTML+=“”;
对于(i=1;i尝试以下方法:

<script type="text/javascript">

        function promptuj() {
            window.x=prompt("How big should be your multiplication table?");
            document.getElementById("keks").innerHTML = tabliczka(window.x);
        }

        function tabliczka(x) {

            var htmlString = "";

            htmlString += "<table border=\"1\">";
            for (i=1; i<=window.x; i++) {

                htmlString  += "<tr><td>" + i + "</td>";
                for (j=1; j<= x; j++) {
                    if (j!=1) {
                    htmlString  += "<td>" + j*i + "</td>";
                    }

                }
                htmlString  += "</tr>";
            }
            htmlString  += "</table>";

           return htmlString;
        }



    </script>

函数promptuj(){
window.x=prompt(“您的乘法表应该有多大?”);
document.getElementById(“keks”).innerHTML=tabliczka(window.x);
}
函数tabliczka(x){
var htmlString=“”;
htmlString+=“”;
对于(i=1;i尝试以下方法:

<script type="text/javascript">

        function promptuj() {
            window.x=prompt("How big should be your multiplication table?");
            document.getElementById("keks").innerHTML = tabliczka(window.x);
        }

        function tabliczka(x) {

            var htmlString = "";

            htmlString += "<table border=\"1\">";
            for (i=1; i<=window.x; i++) {

                htmlString  += "<tr><td>" + i + "</td>";
                for (j=1; j<= x; j++) {
                    if (j!=1) {
                    htmlString  += "<td>" + j*i + "</td>";
                    }

                }
                htmlString  += "</tr>";
            }
            htmlString  += "</table>";

           return htmlString;
        }



    </script>

函数promptuj(){
window.x=prompt(“您的乘法表应该有多大?”);
document.getElementById(“keks”).innerHTML=tabliczka(window.x);
}
函数tabliczka(x){
var htmlString=“”;
htmlString+=“”;

对于(i=1;i您得到未定义,因为在
promptuj
中,您将
innerHTML
设置为
tabliczka
返回的值。但是
tabliczka
没有显式返回任何内容,因此它就像返回了
undefined

相反,
tabliczka
应该返回要设置为
innerHTML
的HTML字符串

此外,切勿使用
.innerHTML+=
。首先连接字符串,并在末尾指定
innerHTML
。如果使用
.innerHTML=“
,解析器将自动关闭表,而无需等待您的
.innerHTML+=”
。然后内容将插入表外。此处不相关,但
。innerHTML+=
还将删除内部数据,例如事件侦听器

函数promptuj(){
var x=prompt(“您的乘法表应该有多大?”);
document.getElementById(“keks”).innerHTML=tabliczka(x);
}
函数tabliczka(x){
var str=“”;

对于(var i=1;i您得到了未定义,因为在
promptuj
中,您将
innerHTML
设置为
tabliczka
返回的值。但是
tabliczka
没有显式返回任何内容,因此它就像返回了
undefined

相反,
tabliczka
应该返回要设置为
innerHTML
的HTML字符串

此外,切勿使用
.innerHTML+=
。首先连接字符串,并在末尾指定
innerHTML
。如果使用
.innerHTML=“
,解析器将自动关闭表,而无需等待您的
.innerHTML+=”
。然后内容将插入表外。此处不相关,但
。innerHTML+=
还将删除内部数据,例如事件侦听器

函数promptuj(){
var x=prompt(“您的乘法表应该有多大?”);
document.getElementById(“keks”).innerHTML=tabliczka(x);
}
函数tabliczka(x){
var str=“”;


对于(var i=1;iNever use
.innerHTML+=
!!!@Oriol那么我应该用什么来代替呢?:|@Andrew L.我只是在函数外部定义了它,它并不重要。当我使用document.write()时,它没有定义它。你将
这个.x
传递给
tabliczka()
函数,但在该函数中不使用参数function@Irevall:DOM不是一个HTML字符串。向DOM添加结束标记没有任何意义。您可以添加整个元素,如果您希望采用该方法,可以使用
.innerHTML
从有效的HTML结构中解析出来。切勿使用
.innerHTML+=
!!!@Oriol then wh我应该改为使用吗?:|@Andrew L。我只是在函数之外定义了它,这无关紧要。当我使用document.write()时,它在没有定义它的情况下工作。您将
this.x
传递给
tabliczka()
函数,但在该函数中不使用参数function@Irevall:DOM不是一个HTML字符串。在DOM中添加结束标记没有任何意义。如果您希望采用该方法,可以使用
.innerHTML
从有效的HTML结构中解析整个元素。因此,我确实过量使用了innerHTML?:p这是一个干净的示例d很好的解决方案,但是
.innerHTML+=
部分真的是导致问题的原因吗?这不是一个(非常)问题吗由于性能原因,这是个坏主意?@PeterHerdenborg好吧,出现了一些问题。结果未定义,因为
tabliczka
没有返回任何内容。但是
。innerHTML+=
不仅对性能不利。如果使用
。innerHTML=“”
,解析器将自动关闭它,而无需等待您的
。innerHTML+=“”
。然后内容将被插入到表外。此处不相关,但
。innerHTML+=
也会删除内部数据,例如事件侦听器。是的,确实如此,还有一些其他问题您已经解决。现在我意识到我上面的评论没有经过仔细考虑,正如其他人在评论中提到的,你不能把HTML片段当作字符串写在.innerHTML中。@Oriol你可以把你的评论添加到答案中,它给你的答案增加了很多价值,所以我确实过量使用了innerHTML?:p这是一个干净而好的解决方案,但是
.innerHTML+=
部分真的是导致问题的原因吗?这不是一个(非常)问题吗由于性能原因,这是个坏主意?@PeterHerdenborg好吧,出现了一些问题。结果未定义,因为
tabliczka
没有返回任何内容。但是
。innerHTML+=
不仅对性能不利。如果使用
。innerHTML=“”
,解析器将自动关闭它,而无需等待您的
。innerHTML+=“”
。然后内容将被插入到表外。此处不相关,但
。innerHTML+=
也会删除内部数据,例如事件侦听器。是的,确实如此,还有一些其他问题您已经解决。现在我意识到我上面的评论不好