“.show()”和“.css({'display':'block'})”有什么区别?

4

我刚刚通过更改脚本使其工作了。

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

to

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

在这个场景中,#thisElement 被加载为 display:none;

这两个表达式有根本性的区别吗?

2个回答

4
假设您在开头有以下内容:
<span id="thisElement" style="display: none;">Foo</span>

当您调用时:

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

你将获得:

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

while:

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

做什么:

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

所以,是的,它们有所不同。

3
我刚试过了,实际上是正确的。我认为jQuery文档有点不清楚。当你在调用hide()之后再调用show()时,值会恢复为最初的状态。如果你调用show()并且没有调用过hide(),它会将display值设置为空字符串。(参见:http://james.padolsey.com/jquery/#v=1.4&fn=show) - takteek

3

jQuery show() 文档 中:

这个方法大致相当于调用 .css('display', 'block'),除了显示属性会被恢复为初始值。如果一个元素的显示属性是 inline,则它被隐藏和显示后,将再次以 inline 显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接