![]() |
1
44
我不会说用
在dom就绪之后,有两种方法可以插入动态HTML(假设我们要将新的HTML插入到
使用dom api方法可能是最纯粹的方法,但是
注:
这个
|
![]() |
2
27
由于HTML的实际内存表示形式是DOM,因此更新给定页面的最佳方法是直接操作DOM。
这样做的方法是通过编程创建节点,然后将它们附加到DOM中的现有位置。假设我有一个
|
![]() |
3
10
在这种情况下,最好使用jquery。它提供了方便的功能,您可以这样做:
|
![]() |
4
9
对于设置属性和内容,DOM方法比字符串更可取。如果你发现自己在写作
传统上,与InnerHTML相比,DOM方法被描述为__slow_。但事实并非如此。缓慢的是插入大量子节点:
这转化为DOM在其节点列表中找到正确位置以插入元素、向上移动其他子节点、插入新节点、更新指针等的工作量。 另一方面,设置现有属性的值或文本节点的数据非常快;只需更改字符串指针即可。这将比用innerhtml序列化父级、更改父级和重新解析父级快得多(并且不会丢失不可序列化的数据,如事件处理程序、JS引用和表单值)。
有一些技术可以在不太慢的childnode行走的情况下进行DOM操作。尤其要注意
|
![]() |
5
3
你可以改变
|
|
6
2
我对JavaScript或其最佳实践不是特别擅长,但是
而且,正如汤姆提到的,JavaScript是在页面加载之后完成的;最好是通过标准HTML(通过.html文件或服务器执行的任何操作[即php])完成页面的初始设置。 |
![]() |
7
1
用javascript编写HTML有很多方法。 只有当您希望在页面实际加载之前写入页面时,document.write才有用。如果在页面加载后使用document.write()(在onload事件中),它将创建新页面并覆盖旧内容。另外,它不适用于包含XHTML的XML。 另一方面,在创建DOM(页面加载)之前,不能使用其他方法,因为它们直接与DOM一起工作。 这些方法是:
在大多数情况下,node.innerhtml更好,因为它比dom函数更快。大多数情况下,它还使代码更可读、更小。 |
![]() |
8
1
当然,最好的方法是避免执行任何繁重的HTML 创造 在你的javascript中?如果可能的话,从服务器发送下来的标记应该包含大部分内容,然后您可以使用CSS而不是蛮力删除/替换元素来操作这些内容。 如果你在做一些“聪明”的事情,比如模仿一个小部件系统,这并不适用。 |
![]() |
9
1
但要注意: document.write()。 方法是 只有 用于在页面创建时插入内容。因此,当有大量数据要像产品或图像的目录一样写入时,使用它来避免重复。 这里有一个简单的例子: 侧菜单的所有li都存储在一个数组“tab”中,您可以创建一个JS脚本,将脚本标记直接插入HTML页面,然后在一个迭代函数中使用write方法在页面上插入这些li。
这是因为JS是 以线性方式解释 在装载过程中。因此,请确保您的脚本在HTML页面中的正确位置。您也可以使用外部JS文件,但是您必须在希望对其进行解释的位置声明它。 因此, 文件编写 由于 “用户交互” (如单击或悬停),因为此时已经创建了DOM,而write方法将像上面所说的那样编写一个新页面(清除实际的执行堆栈,并启动一个新堆栈和一个新的DOM树)。在这种情况下,使用:
要了解有关文档方法的更多信息,请打开控制台:
您将在文档对象中看到函数属性“write”。
您也可以使用
文档.writeln
在每个语句中添加一行新行。
要了解有关函数/方法的更多信息,只需在控制台中不带括号地写入其名称:
|
![]() |
10
0
document.write方法非常有限。您只能在页面完成加载之前使用它。不能使用它更新已加载页面的内容。 你可能想要的是 innerHTML . |
![]() |
11
0
我觉得你应该用,而不是
ihunger's
|
![]() |
12
0
使用jquery,看看它有多简单:
|
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
NovoMannen · 导航中的下拉菜单在内容后面重叠 1 年前 |
|
eXor420 · 如何在脚本标记中使用导出的函数? 1 年前 |
![]() |
IonicMan · 剑道网格在宽度过大时不显示某些列 1 年前 |
![]() |
Kernier · 如何将数学公式支持添加到StacksEditor? 1 年前 |
|
Md. Ibrahim · CSS网格项溢出小屏幕滚动 1 年前 |
|
Akshay mek · Vscode扩展建议不适用于某些文件夹 1 年前 |