Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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 appendChild不处理循环中的div_Javascript_Html - Fatal编程技术网

Javascript appendChild不处理循环中的div

Javascript appendChild不处理循环中的div,javascript,html,Javascript,Html,我试图使用document.getElementsByTagNamediv将新的div元素附加到现有div中,将其转换为数组,然后对其使用appendChild。但是,当我检查这个JSFIDLE的帧源时,它似乎没有将它附加到divs中。只是: <body> <div id="1"> <div id="2"> test </div> </div> 而不是预期的结果: <body> <div id

我试图使用document.getElementsByTagNamediv将新的div元素附加到现有div中,将其转换为数组,然后对其使用appendChild。但是,当我检查这个JSFIDLE的帧源时,它似乎没有将它附加到divs中。只是:

<body>
  <div id="1">
  <div id="2">
    test
  </div>
</div>
而不是预期的结果:

<body>
  <div id="1">
  <div id="2">
    test
  </div><div></div>
</div><div></div>
使用.after代替.appendChild

var words=[‘苹果’、‘香蕉’、‘蛋糕’]; console.logwords[0]; 对象1={ 姓名:"弗兰克",, 问候:功能{ 警报“你好”+此名称 } }; 对象2={ 姓名:“安迪” }; //请注意,object2没有greet方法。 //但我们可以借用object1: object1.greet.callobject2; /* var divs=[]; var arr=Array.prototype.slice.call document.getElementsByTagNamediv; forvar i=0;i我无法评论,但我相信您只是在创建空div,而没有添加任何内容。它们显示在您检查JSFIDLE中的元素时创建的。我还将他们的文本设置为某个内容,它似乎起了作用

var allDivs = [].slice.call(document.getElementsByTagName("div"));  
  for (var i = 0; i < allDivs.length; i++) {
    var newDiv = document.createElement("div"); 
    newDiv.innerHTML = "Hidden Div?";
    allDivs[i].appendChild(newDiv);
    console.log(allDivs[i]);
  }  

测试是我得到的输出,这不是故意的吗?你是怎么得到这个结果的?当我在jsfiddle中检查输出帧时,我只得到test,我看到的是与@KyleBecker相同的东西,这是我期望看到的。appendchild将元素作为其标记内部调用的元素的子元素进行追加。这并不意味着在调用标记后将标记作为原位追加..appendchild不检查源以了解源的外观。使用dev工具html/elements检查结果。问题不在于铬。。它与用户有关;好吧,现在我认为这是Chrome的问题?当我检查时,我可以看到新的div,但是当我右键单击右下角并单击ViewFrame source时,我只得到test,根据问题,这仍然不是正确的答案。代码生成测试而不是问题所要求的测试。我认为帧源代码与页面源代码相同,即javascript更改它之前的样子。这不是预期的目的吗?我以为他们想在现有的每个div中添加一个div。事情就是这样。在每个div内部创建了一个div元素。
var allDivs = [].slice.call(document.getElementsByTagName("div"));  
  for (var i = 0; i < allDivs.length; i++) {
    var newDiv = document.createElement("div"); 
    newDiv.innerHTML = "Hidden Div?";
    allDivs[i].appendChild(newDiv);
    console.log(allDivs[i]);
  }