Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 为什么我创建4个div的循环函数是错误的?_Javascript_Loops_For Loop - Fatal编程技术网

Javascript 为什么我创建4个div的循环函数是错误的?

Javascript 为什么我创建4个div的循环函数是错误的?,javascript,loops,for-loop,Javascript,Loops,For Loop,我正在练习使用循环,我所做的是: var writing = function() { for (var i = 0, n = 4; i < n; i++) { document.createElement("div") += 1; } }; writing(); var writing=function(){ 对于(变量i=0,n=4;i

我正在练习使用循环,我所做的是:

var writing = function() {

for (var i = 0, n = 4; i < n; i++) {
    document.createElement("div") += 1;
}

};
writing();
var writing=function(){
对于(变量i=0,n=4;i
它不起作用,为什么?它应该创建4个div。

这是我的解决方案

HTML:


上面的文本是动态创建的。
JS:

var writing=function(){
var currentDiv=document.getElementById(“div1”);
对于(变量i=0;i<4;i++){
var newDiv=document.createElement(“div”);
var newContent=document.createTextNode(“您好,欢迎光临!”);
newDiv.appendChild(newContent);
document.body.insertBefore(newDiv,currentDiv);
}
};
写作();
我希望这对你有帮助


单击查看

我的解决方案也差不多。谈论你的代码

这条线

document.createElement("div") += 1;
是无效的赋值,不会增加DOM元素计数。事情要简单。下面是我的编辑

var writing = function() {
var elm;
    for (var i = 0; i < 4; i++) {
        elm = document.createElement("div");
        document.body.appendChild(elm);
    }

};
var writing=function(){
var-elm;
对于(变量i=0;i<4;i++){
elm=document.createElement(“div”);
文件.正文.附件(elm);
}
};

这是一个正在工作的..

你说的“它没有工作”是什么意思?请更具体一点创建元素并不意味着它会显示在页面上。@chiwangc这个想法很简单。创建一个div 4次并显示在页面上。它不显示anything@u_mulder那么我遗漏了什么呢?从控制台开始,看看报告了哪些类型的错误。如果您不知道控制台是什么,请在做其他事情之前立即了解它。您还需要了解DOM调用,例如
appendChild
。将1添加到元素中的意图是什么?这部分让我感到困惑:var currentDiv=document.getElementById(“div1”);如果没有div1,我们为什么需要这个?我的意思是,如果没有div,为什么每次都要通过循环重新检索
currentDiv
?我认为它更干净,但我不想附加任何文本。删除包含文本的变量会破坏我在没有点击的情况下制作的JSFIDLE版本的函数。您是如何学会编写这么好的代码的?我正在学习一本有说服力的javascript书,并完成了第二章控制流等。因为这些示例都是使用console.log的,所以我想看看如何在DOM中实现它。整个for循环是一个名为elm的变量吗?为什么elm后面没有=号,我看到您添加了分号我有意在click handler上调用您的函数以控制执行和工作..:)您在elm中使用的这种变量类型是什么?通常情况下,变量have=after them做编码就是你在讲一个故事,这完全是关于你的想象力。JavaScript不是强类型语言,如果变量未定义,它不会阻止您。
document.createElement("div") += 1;
var writing = function() {
var elm;
    for (var i = 0; i < 4; i++) {
        elm = document.createElement("div");
        document.body.appendChild(elm);
    }

};