2017-07-29 19 views
0

我正在学习Javascript,我看到输出代码的首选方法是document.getElementById ...和Document.write应该只用于测试...输出Javascript的最佳方法是什么?

这是输出任何脚本的最佳方式?代码究竟在做什么?我写了下面的代码,我不知道“演示”如何发挥作用,为什么它是必要的...

<html> 
    <head> 
     <script> 

      function addNumbers(arr){ 
       var i, answer =0; 

       for(i=0; i<arr.length; i++){ 
        answer += arr[i]; 

       } 
       return answer; 
      } 

     </script> 
    </head> 

    <body> 

     <h4> Function addNumbers: </h4> 

     <p id="demo"></p> 

     <script> 

      var myArray = [1,2,3,4,5,6,7,8,9]; 
      document.getElementById("demo").innerHTML = addNumbers(myArray); 

     </script> 

    </body> 
</html> 
+1

为什么你想要在DOM中显示你的代码结果(特别是当你在做数组操作时)?控制台是为它制作的。 –

+0

@Kinduser它是一个类,我需要显示函数>。< –

+0

@AntoineB只是'console.log'它。这正是它的目的。 – Carcigenicate

回答

0

退一万步,进两步:

document.write是一组三个功能

  • document.open()之一打开文档从头开始写,删除现有的文档内容,如果有的话。
  • document.write(string)将字符串插入到用于构建网页的字符流中。
  • document.close()关闭写入文件。任何进一步的写入都会重新打开文档并清除过程中的现有内容。

现在考虑

  1. 在页面输入流的末尾,该文件将自动关闭。
  2. 文档是使用“文档对象模型”(“DOM”)构建的,可以从脚本中访问和操作文档。
  3. document.open/write/close在DOM被标准化并可用之前发起。

所以document.write在现代网络编程中几乎没有用处。如果在页面加载完成后使用,则会将页面擦除。它几乎完全限于尚未学习DOM的学生的教程,偶尔以编程方式编写用window.open打开的子窗口的内容。

页面中的所有HTML元素都以DOM中的HTML元素节点的形式存在。这些可以通过调用方法(如document.getElementByIddocument.querySelector)访问,并作为JavaScript对象值返回。 HTMLElements因标签类型而异,但如果它们代表HTML容器元素,则具有诸如innerHTMLtextContent之类的属性,如果使用脚本中的文本字符串进行更新,则会更改呈现的页面的内容。

在回答你的问题时,“demo”是HTMLParagraphElement的id值,其中id值用于访问DOM中的特定元素 - id值在页面HTMLElements中应该是唯一的。

(段落)元素对象是通过使用document.getElementById查询DOM获得的。随后更改元素内容innerHTML会导致文档被重新渲染为新内容,从而更新页面的显示。

+0

非常感谢你的回答。我正在采用的类是HTML/CSS/JS的基本入门级,现在它有道理为什么他们要求我们使用document.write ..谢谢 –

-1

您的代码运行得很好。看看下面。我在这里没有看到任何问题。如果你想在带有演示ID的元素内的页面上显示结果,那么它的工作很好,这是做到这一点。如果你想在控制台上打印你的值,那么console.log是正确的方法。在你的代码中声明这个数组var myArray = [1,2,3,4,5,6,7,8,9];之后,只需将该函数传递给console.log(addNumbers(myArray))即可。

<html> 
 
    <head> 
 
     <script> 
 

 
      function addNumbers(arr){ 
 
       var i, answer =0; 
 

 
       for(i=0; i<arr.length; i++){ 
 
        answer += arr[i]; 
 

 
       } 
 
       return answer; 
 
      } 
 

 
     </script> 
 
    </head> 
 

 
    <body> 
 

 
     <h4> Function addNumbers: </h4> 
 

 
     <p id="demo"></p> 
 

 
     <script> 
 

 
      var myArray = [1,2,3,4,5,6,7,8,9]; 
 
      document.getElementById("demo").innerHTML = addNumbers(myArray); 
 

 
     </script> 
 

 
    </body> 
 
</html>

+0

这完全错过了这个问题。他没有任何地方说代码被破坏。另外,如果你只是复制他的代码,那不是一个答案。 – Carcigenicate

+0

我发布了它,以便他可以使用“运行代码段”按钮运行它。无论如何,我以为我在帮忙。 –

+0

下次我会更好地尝试一个垃圾。我知道它非常关键的社区。 –

0

演示指的是ID为 “演示” 的段落。您可以使用ids(在HTML页面中必须是唯一的)在JavaScript中识别和使用html标记。

document.write确实不再经常使用。有多种原因。由于它在网上很好的解释,看看these answers或者这个article

如果您添加一些缺失的标签,如</head><body><script>,并且控制台日志正在发生,那么您的代码正常工作。在下面的代码片段中运行。

作为一个侧音,现在更好的做法是在关闭</body>标签之前做好JavaScript的工作并加载到页面底部。由于任何加载发生在DOM加载后。

function addNumbers(arr) { 
 
    var i, answer = 0; 
 

 
    for (i = 0; i < arr.length; i++) { 
 
    answer += arr[i]; 
 

 
    } 
 
    return answer; 
 
} 
 

 
var myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 
 

 
document.getElementById("demo").innerHTML = addNumbers(myArray); 
 

 
console.log(addNumbers(myArray))
<html> 
 

 
<head> 
 

 
</head> 
 

 
<body> 
 

 
    <h4> Function addNumbers: </h4> 
 

 
    <p id="demo">This is a paragraph that can be identified using the id attribute.</p> 
 

 
</body> 
 

 
</html>

相关问题