Javascript jQuery与x2019之间的差异;s.hide()并将CSS设置为显示:无

Javascript jQuery与x2019之间的差异;s.hide()并将CSS设置为显示:无,javascript,jquery,html,css,show-hide,Javascript,Jquery,Html,Css,Show Hide,我做什么比较好.hide()比写出.css(“display”,“none”)要快,但是有什么区别,它们对HTML元素的实际作用是什么呢?两种方法在所有浏览器上都是一样的,好吧。在Chrome和Firefox上选中,都会将display:none附加到元素的style属性中。在将其设置为none之前存储先前的display属性,因此如果它不是元素的标准display属性,您会更安全一些,将使用存储的属性作为返回的对象。所以…它做了一些额外的工作,但除非你做了大量的元素,否则速度差应该可以忽略不计

我做什么比较好
.hide()
比写出
.css(“display”,“none”)
要快,但是有什么区别,它们对HTML元素的实际作用是什么呢?

两种方法在所有浏览器上都是一样的,好吧。在Chrome和Firefox上选中,都会将
display:none
附加到元素的
style
属性中。

在将其设置为
none
之前存储先前的
display
属性,因此如果它不是元素的标准
display
属性,您会更安全一些,将使用存储的属性作为返回的对象。所以…它做了一些额外的工作,但除非你做了大量的元素,否则速度差应该可以忽略不计。

看看jQuery代码,会发生以下情况:

hide: function( speed, easing, callback ) {
    if ( speed || speed === 0 ) {
        return this.animate( genFx("hide", 3), speed, easing, callback);

    } else {
        for ( var i = 0, j = this.length; i < j; i++ ) {
            var display = jQuery.css( this[i], "display" );

            if ( display !== "none" ) {
                jQuery.data( this[i], "olddisplay", display );
            }
        }

        // Set the display of the elements in a second loop
        // to avoid the constant reflow
        for ( i = 0; i < j; i++ ) {
            this[i].style.display = "none";
        }

        return this;
    }
},
hide:函数(速度、缓解、回调){
如果(速度| |速度===0){
返回这个。动画(genFx(“隐藏”,3),速度,放松,回调);
}否则{
for(var i=0,j=this.length;i
来自jQuery页面,关于:

匹配的元素将立即隐藏,没有动画。这大致相当于调用.css('display','none'),但显示属性的值保存在jQuery的数据缓存中,以便以后可以将显示还原为其初始值。如果某个元素的显示值为inline,则隐藏并显示,它将再次以inline显示。“

因此,如果能够恢复到
display
的上一个值很重要,那么最好使用
hide()
,因为这样可以记住上一个状态。除此之外没有区别。
$(函数(){
$('.hide')。单击(函数(){
$('.toggle').hide();
setDisplayValue();
});
$('.show')。单击(函数(){
$('.toggle').show();
setDisplayValue();
});
});
函数setDisplayValue(){
变量显示=$('.toggle')[0].style.display;
$('.displayvalue').text(显示);
}
div{
显示:表格单元格;
边框:1px实心;
填充物:5px;
}


隐藏
显示

乱数假文 div的显示值为:

它们是一样的东西
.hide()
调用jQuery函数并允许您向其添加回调函数。因此,使用
.hide()
可以添加动画

.css(“display”、“none”)
将元素的属性更改为
display:none
。这与在JavaScript中执行以下操作相同:

document.getElementById('elementId').style.display = 'none';

.hide()
函数显然需要更多的时间来运行,因为它会检查回调函数、速度等。

请看,如果使用基本隐藏方法,则没有什么区别。 但是jquery提供了各种隐藏方法,这些方法会对元素产生影响。 有关详细说明,请参阅以下链接:
同时使用是一个很好的答案;这不是非此即彼的问题

使用两者的优点是CSS会在页面加载时立即隐藏元素。hide将闪烁元素四分之一秒,然后隐藏它


如果我们想在页面加载时不显示元素,我们可以使用CSS并设置display:none&使用jQuery.hide()。如果我们计划切换元素,我们可以使用jquerytoggle

使用.hide时出现的问题是,重新加载站点后,元素hide在2秒内仍在查找