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
属性可以有许多可能的值,其中包括block
, inline
, inline-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中检索初始状态,因为显示不是二进制属性,它可以是inline
, block
, none
, table
等。类似于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
,也可以是inline
, table-cell
等)。
没有参数,.show()方法是显示元素最简单的方法:
$( '目标')显示()。
匹配的元素将立即显示,没有animation。 这大致等同于调用.css('display','block'),除了display属性被恢复到最初的状态。 如果一个元素有一个内联的显示值,然后被隐藏并显示,它将再一次被内联显示。