Javascript 在页面中完全隐藏元素的最有效方法是什么?

Javascript 在页面中完全隐藏元素的最有效方法是什么?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,形势 我有很多我想隐藏的BTN 我有点想把他们藏起来,但不是我故意想要的 当我的页面加载时,它们的闪烁速度非常快 我正努力把它们藏起来 我采取的步骤 首先,我使用hide()。我喜欢,但是 我注意到所有这些基站在页面加载时都在闪烁#好奇 第二,我知道了 .css(“显示”、“无”)比hide()快,所以我尝试了一下,仍然得到了相同的结果,可能更快,但我仍然看到闪烁 第三,有些人声称.attr('disabled',true)甚至更快,而且是的我已经试过了,但根本不起作用 .attr('di

形势

  • 我有很多我想隐藏的BTN
  • 我有点想把他们藏起来,但不是我故意想要的
  • 当我的页面加载时,它们的闪烁速度非常快
  • 我正努力把它们藏起来
我采取的步骤

  • 首先,我使用
    hide()。我喜欢,但是
    我注意到所有这些基站在页面加载时都在闪烁#好奇

  • 第二,我知道了
    .css(“显示”、“无”)
    hide()
    快,所以我尝试了一下,仍然得到了相同的结果,可能更快,但我仍然看到闪烁

  • 第三,有些人声称
    .attr('disabled',true)
    甚至更快,而且是的我已经试过了,但根本不起作用

  • .attr('disabled',true)
    可能已经过时,然后我使用最新的
    .prop('disabled',true),但仍然不起作用

我现在完全不知所措。我希望有人能帮我结束这一切


在页面中完全隐藏元素的最有效方法是什么

您观察到的延迟是浏览器下载和执行脚本所需的时间,您使用JavaScript中的方法在按钮上设置
display:none
,这无关紧要,总是会有延迟(因为浏览器必须下载、解析和执行脚本)

最快的方法是不使用JavaScript,只需在呈现页面时通过CSS(内联或样式表)在按钮上设置
display:none

首先,
hide()
。CSS('display','none')
实际上是等效的。flash的出现是因为在页面初始加载后下载和执行脚本所需的时间

当然,隐藏按钮的最快方法是将它们从HTML标记中完全删除。:)

但是,假设您不想从标记中删除按钮,而可能在某个时候希望以编程方式显示按钮,那么您将希望从一开始就使用CSS隐藏按钮:

button {
  display: none;
}

(禁用的
属性只会使用户无法与支持该属性的浏览器上的按钮交互。它不会隐藏元素。)

从html5开始,有一个新的
隐藏的
属性控制元素是否显示。您可能应该将其添加到元素中。这样,在解析html的同时隐藏元素,并且没有延迟

您还可以使用jquery的标准方式,通过使用
$(element).attr(“hidden”,“true”)

但是,如果使用jquery添加属性,延迟仍然存在,因为在显示html和加载并运行js之间会有延迟


注意:这只适用于IE 11+

,你的意思是说它甚至不存在?为了加快页面加载速度,您可以在不使用javascript的情况下将显示无添加到按钮中。您需要使用js有什么原因吗?我们可以看一个例子吗?如果css应该使用的话,你真的不应该使用JQuery。这意味着,如果你知道你需要在页面加载时隐藏这些项目,为什么不使用css呢?@Druidcwyrm:如果我错了,请纠正我。所有这些我都是新手。我使用jQuery
hide()
,因为我希望能够在某一点上显示它们。我甚至不知道哪种方式更好,只要我能触发他们回来,我很高兴。请告知。@rangerover.js“大致相当于调用.css(“display”、“none”)”。因此,使用css设置display none,然后调用.show();使用JQuery.+1谢谢你的提示,我一定会试试的。如果我使用内联css,我还可以在某个时候显示它们吗。我希望您不介意详细说明。@rangerover.js-是的,在元素上切换一个类(如
show-I
,并在CSS中添加规则:
.show-I{display:block!important;}
这是新的,从未听说过。我可以使用jQuery来实现吗?您可以将其添加到您的答案中吗?稍后人们可能会喜欢您的解决方案。感谢您的直接解释和提示。