jQuery .hide()和.css(“display”,“none”)之间的区别

有什么区别吗?

jQuery('#id').show() and jQuery('#id').css("display","block") 

 jQuery('#id').hide() and jQuery('#id').css("display","none") 

jQuery的( '#标识')。CSS( “显示”, “块”)

display属性可以有许多可能的值,其中包括blockinlineinline-block 等等 。

.show()方法不会将其设置为block ,而是将其重置为您定义的内容(如果有的话)。

在jQuery源代码中,您可以看到他们如何将display属性设置为“”(一个空string)来检查jQuery操作之前是什么: 小链接 。

另一方面,隐藏是通过display: none; ,所以你可以考虑.hide().css("display", "none")等价于某个点。

build议使用.show().show() ,以避免任何问题(加上,他们更短)。

show()和css({'display':'block'})之间的区别

假设你在开始时有这个:

 <span id="thisElement" style="display: none;">Foo</span> 

你打电话时:

 $('#thisElement').show(); 

你会得到:

 <span id="thisElement" style="">Foo</span> 

而:

 $('#thisElement').css({'display':'block'}); 

作用:

 <span id="thisElement" style="display: block;">Foo</span> 

所以,是的,有一个区别。

hide()和css({'display':'none'})之间的区别

与上面相同,但将其更改为hide()并显示':'none'……

另一个区别当调用.show()时,display属性的值保存在jQuery的数据caching中,所以当.show()时,初始显示值被恢复!

是的,两者的性能有所不同: jQuery('#id').show()jQuery('#id').css("display","block")要慢为了从jQuerycaching中检索初始状态,因为显示不是二进制属性,它可以是inlineblocknonetable等。类似于hide()方法。

请参阅: http : //jsperf.com/show-vs-addclass

没有不同

没有参数,.hide()方法是隐藏元素最简单的方法:

$( '目标')隐藏()。 匹配的元素将立即隐藏,没有animation。 这大致等同于调用.css('display','none'),除了display属性的值保存在jQuery的数据caching中,以便稍后可以将显示恢复到初始值。 如果一个元素有一个内联的显示值,然后被隐藏并显示,它将再一次被内联显示。

同样的表演

是,有一点不同。

jQuery('#id').css("display","block")将始终将您想要显示的元素设置为块。

jQuery('#id').show()将按照最初的显示types显示:display:inline。

参见Jquery Doc

你可以看看源代码 (这里是v1.7.2)。

除了我们可以设置的animation以外,这也会保留旧的显示风格(这不是所有情况下都可以inline ,也可以是inlinetable-cell等)。

http://api.jquery.com/show/

没有参数,.show()方法是显示元素最简单的方法:

$( '目标')显示()。

匹配的元素将立即显示,没有animation。 这大致等同于调用.css('display','block'),除了display属性被恢复到最初的状态。 如果一个元素有一个内联的显示值,然后被隐藏并显示,它将再一次被内联显示。