首页  >  问答  >  正文

重写后的标题:如何以最佳方式输出JavaScript?

<p>我正在学习JavaScript,我看到推荐的输出代码的方法是使用document.getElementById...,而Document.write只应在测试中使用...</p> <p>这是输出任何脚本的最佳方法吗?这段代码具体是做什么的?我写了以下代码,不确定"demo"是如何起作用的,以及为什么它是必要的...</p> <pre class="brush:php;toolbar:false;"><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> 函数 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></pre> <p><br /></p>
P粉969253139P粉969253139454 天前451

全部回复(2)我来回复

  • P粉827121558

    P粉8271215582023-08-15 10:45:51

    Demo指的是具有id“demo”的段落。您可以使用id(在整个HTML页面中必须是唯一的)来识别和使用javascript中的html标签。

    document.write确实不再经常使用。有多个原因。由于在网络上有很好的解释,请查看这些答案这篇文章

    如果您添加一些缺失的标签,如</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>

    回复
    0
  • P粉757432491

    P粉7574324912023-08-15 09:16:35

    退一步,向前迈两步:

    document.write 是三个函数之一

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

    现在考虑以下事项

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

    因此,document.write 在现代Web编程中几乎没有用处。如果在页面加载完成后使用,它会清除页面内容。它几乎完全限于学生教程,这些学生尚未学习到DOM的存在,以及在使用window.open打开的子窗口中以编程方式编写内容时偶尔使用。

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

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

    通过使用document.getElementById查询DOM可以获取(段落)元素对象。随后更改元素的innerHTML内容会导致文档重新呈现新内容,更新页面的显示。

    回复
    0
  • 取消回复