我有一个页面,我已经为许多其他内容加载了 jquery(即,我已经承担了加载 jquery 的开销)。
考虑到这一点,是否有一种“正确”的方式来显示/隐藏元素——这两种中的哪一种比另一种“更好”还是“更有效”?
仅限 JAVASCRIPT:
document.getElementById('stuff').style.display = 'none';
查询:
$jsjp('#stuff').css('display','block');
谢谢!
我有一个页面,我已经为许多其他内容加载了 jquery(即,我已经承担了加载 jquery 的开销)。
考虑到这一点,是否有一种“正确”的方式来显示/隐藏元素——这两种中的哪一种比另一种“更好”还是“更有效”?
仅限 JAVASCRIPT:
document.getElementById('stuff').style.display = 'none';
查询:
$jsjp('#stuff').css('display','block');
谢谢!
我会使用$('#stuff').hide()
| $('#stuff').show()
而不是$('#stuff').css('display','none');
|$('#stuff').css('display','block');
Javascript 总是比 jQuery 快,只是因为 jQuery(通常)引入了至少一个额外的调用层,否则本来可以是原生的。
但是考虑一下,至少在您的问题的上下文中,您将如何在本机 JS 中隐藏一个元素:
foo.style.display = 'none';
与 jQuery 相比:
foo.hide();
没有太大区别,除了字符数,真的没什么可做的。
现在,让我们反过来说。你将如何foo
在 jQuery 中显示回来?
foo.show();
在原始 JS 中:
foo.style.display = 'block';
完毕。也没有太大区别。
或者有吗?花点时间考虑一下。我们这里的第一个问题实际上是我们如何得到我们首先设置的假设display = 'block'
。我们应该设置foo
块显示吗?不应该是一个inline
代替吗?还是一个inline-block
?
大多数情况下,您无需继续决定使用哪个,如果您这样做的机会不大,您可能会编写一些支持代码来确保您这样做了。
jQuery 实现show
and的主要(经常被忽视的)好处之一hide
是所有跟踪都是为您默默完成的。如果你调用.hide()
了一个块元素,一旦你调用.show()
它,jQuery 会将它放回块中,而不是其他任何东西。
无论您决定继续提出问题,请确保您也考虑到这一点。
Vanilla JavaScript 总是比 jQuery 快,但是由于 ID 选择器的 jQuery 使用原生getElementById
函数,两者没有主要区别,你也可以使用show
andhide
方法:
$jsjp('#stuff').hide()