Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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 插入元素与显示隐藏元素_Javascript_Html_Css - Fatal编程技术网

Javascript 插入元素与显示隐藏元素

Javascript 插入元素与显示隐藏元素,javascript,html,css,Javascript,Html,Css,显示最初要隐藏的HTML元素的最佳实践是什么 在HTML中创建元素并用CSS隐藏它。当需要使用它时,用JavaScript显示它 当需要元素时,使用JavaScript创建并显示它 前者的缺点是,HTML中有一个潜在的不必要元素,必须首先用CSS隐藏。后者的缺点是HTML在JavaScript文件中 编辑:添加示例 一个例子是添加一个加载指示器或显示一个模式窗口。这个问题的答案过去非常倾向于“在需要之前不要创建它。” 这一决定背后的原因在某种程度上仍然适用,但没有以前那么多 在关闭样式的情

显示最初要隐藏的HTML元素的最佳实践是什么

  • 在HTML中创建元素并用CSS隐藏它。当需要使用它时,用JavaScript显示它
  • 当需要元素时,使用JavaScript创建并显示它
前者的缺点是,HTML中有一个潜在的不必要元素,必须首先用CSS隐藏。后者的缺点是HTML在JavaScript文件中

编辑:添加示例


一个例子是添加一个加载指示器或显示一个模式窗口。

这个问题的答案过去非常倾向于“在需要之前不要创建它。”

这一决定背后的原因在某种程度上仍然适用,但没有以前那么多

  • 在关闭样式的情况下运行浏览器的用户将看到您隐藏的内容。他们还会看到一张非常丑陋的网。我不会担心的
  • 运行不支持样式的非常古老的浏览器的人会看到它。他们还将看到一张非常破的网。我也不担心他们
  • 屏幕阅读器会把它捡起来。现代屏幕阅读器似乎更善于了解内容是什么,不可见的是什么。如果您需要ADA合规性,或者只是想负责任,可以在那里进行一些测试
  • 有时,在打印时,会提取隐藏的内容。再说一次,这不是问题

总之,我希望通过CSS隐藏它,而不是尝试动态添加内容

这个问题的答案过去常常偏向于“在需要之前不要创建它”

这一决定背后的原因在某种程度上仍然适用,但没有以前那么多

  • 在关闭样式的情况下运行浏览器的用户将看到您隐藏的内容。他们还会看到一张非常丑陋的网。我不会担心的
  • 运行不支持样式的非常古老的浏览器的人会看到它。他们还将看到一张非常破的网。我也不担心他们
  • 屏幕阅读器会把它捡起来。现代屏幕阅读器似乎更善于了解内容是什么,不可见的是什么。如果您需要ADA合规性,或者只是想负责任,可以在那里进行一些测试
  • 有时,在打印时,会提取隐藏的内容。再说一次,这不是问题

总之,我希望通过CSS隐藏它,而不是尝试动态添加内容

这其中有很多因素。如果要插入一个小元素,比如链接或选择列表选项,那么在javascript中动态生成它们是不成问题的。如果要生成一系列重复的复杂HTML,最好在标记中创建一个HTML模板(以便web设计师能够维护),然后将模板隐藏在CSS中。然后使用javascript(例如jQuery)克隆模板并将其插入DOM。这使您可以使用更多的本机实现来扩展DOM树,而不必使用解析HTML混乱的所有讨厌的javascript

但最终实用性归结为:谁来维护代码?更优雅的解决方案是维护人员能够理解的吗?或者,将所有东西都放在javascript中(尽管它不美观)是一个初级程序员能够在将来需要时扩展或更新的东西吗

绝大多数的网络浏览器都是在硬件上运行的,这些硬件对于用户的实际“需求”来说都是超负荷的,至少在网络浏览方面是如此。正因为如此,Javascript中效率低下的解决方案很少立即成为问题。如果你的目标是移动浏览器,效率=电池寿命。因此,如果你正在做笨重的DOM操作,那么考虑上面的建议,看看它对你的情况是否适用。 祝你好运!
-布伦丹

这其中有很多因素。如果要插入一个小元素,比如链接或选择列表选项,那么在javascript中动态生成它们是不成问题的。如果要生成一系列重复的复杂HTML,最好在标记中创建一个HTML模板(以便web设计师能够维护),然后将模板隐藏在CSS中。然后使用javascript(例如jQuery)克隆模板并将其插入DOM。这使您可以使用更多的本机实现来扩展DOM树,而不必使用解析HTML混乱的所有讨厌的javascript

但最终实用性归结为:谁来维护代码?更优雅的解决方案是维护人员能够理解的吗?或者,将所有东西都放在javascript中(尽管它不美观)是一个初级程序员能够在将来需要时扩展或更新的东西吗

绝大多数的网络浏览器都是在硬件上运行的,这些硬件对于用户的实际“需求”来说都是超负荷的,至少在网络浏览方面是如此。正因为如此,Javascript中效率低下的解决方案很少立即成为问题。如果你的目标是移动浏览器,效率=电池寿命。因此,如果你正在做笨重的DOM操作,那么考虑上面的建议,看看它对你的情况是否适用。 祝你好运!
-布伦丹取决于具体需要。有时,您可能有一个隐藏的元素,并使用不同的内容多次更新它,显示/隐藏它。这还取决于它是一个或两个小元素,一个或两个大元素,还是数千个元素。。等等。我认为这主要取决于需要显示/隐藏的次数。如果它不止一个,那么肯定是前者,因为否则你只是一次又一次地创建HTML