2015-11-28 37 views
0

我需要输出所有这些div到一个新标签。但是当我点击一个链接时,只有第3行出货。哪里不对?Javascript输出到一个新标签

<a onclick="func()" href="javascript:void(0);">click to open all "foo" divs in a new tab</a> 

<div class="foo">Row 1</div> 
<div class="foo">Row 2</div> 
<div class="foo">Row 3</div> 

<script> 
function func() { 
    var foo = document.getElementsByClassName("foo"); 
     for (i = 0; i < foo.length; i++) { 
       htmlContent = foo[i].innerHTML; 
     } 
     window.open().document.write(htmlContent); 
} 
</script> 
+0

您正在用每次迭代替换'htmlContent' – Ramanlfc

回答

1

你没有用var关键字声明变量 'htmlContent' 给它分配一个值之前。检查此代码: -

<script> 
     function func() { 
     var foo = document.getElementsByClassName("foo"); 
     var htmlContent = ''; 
      for (i = 0; i < foo.length; i++) { 
        htmlContent += foo[i].innerHTML; 
      } 
      window.open().document.write(htmlContent); 
     } 
</script> 
2

随着我每增加你覆盖HTML内容。改变

htmlContent = foo[i].innerHTML; 

htmlContent += foo[i].innerHTML; 
+0

嗯。我是js的总新手。也许这是正确的答案,但在这个变化之后,我的帖子中显示的代码根本不起作用。 – jsv