我只是对任何事情感到好奇......我需要根据属性有条件地隐藏元素。我可以用基本的javascript做到这一点:
document.getElementById('business_option').style.visibility = 'hidden';
document.getElementById('business_option').style.height = '0px';
或者用jQuery做同样的事情:
$("#business_option").css("visibility", "hidden").css("height", "0px");
人们会去哪里?我认为纯JS的执行速度可能比jQuery略快,但jQuery更简洁,写得更快!过度依赖jQuery是不好的做法?你还应该在这样的场合写一点点javascript吗?或者编写更简洁的jQuery是否更简洁?
或者有人甚至关心?! : - )
答案 0 :(得分:3)
如果这是你页面的唯一目的,你可能会坚持使用纯JS,但我真的建议使用jQuery来完成这项任务。
因为jQuery提供了许多操作内容的方法,并且由于某种原因,它被称为写入少了更多的库;-)您还可以为隐藏和显示方法添加效果!
也可以阅读这个SO问题:
答案 1 :(得分:2)
在我看来,这取决于因素:
<强>浏览器强>
如果您正在为各种新旧浏览器开发网站,jQuery的强大功能是利用浏览器行为的许多细微差别。您不必记住并应用所有技巧来支持旧IE上的CSS更改,jQuery将会带来麻烦。
<强>性能强>
相反,在最近的移动设备上,您可以依赖浏览器符合最新标准并进行纯JS实施的事实。即使是在移动设备上,随着新浏览器,厂商前缀等的引入,情况也一定会变得混乱。
关于性能,jQuery的工作几乎满足了每个网站的需求而没有任何问题。说到网络应用程序,涉及大量数据和令人眼花缭乱的效果,那么您可能希望使用纯JS来优化最昂贵的代码部分。或者完全摆脱jQuery。与桌面相比,这在计算资源有限的移动设备上尤为突出。
谈论性能,这是编写代码的更好方法:)
// Accessing the DOM is expensive, let's limit it to a single call
var business_option_style = document.getElementById('business_option').style;
business_option_style.visibility = 'hidden';
business_option_style.height = '0px';
和
// Single function call
$("#business_option").css( {
"visibility": "hidden",
"height": 0
});
答案 2 :(得分:1)
我真的很关心这些东西。 当我编写代码时,我总是在考虑未来,可能是因为它变得非常有效。 无论哪种方式,我在DOM中编辑样式时的头号规则永远都不会用javascript来实现....我已经使用了这个新的思维模式,它让我感觉非常好。
所以我的解决方案是:
.invis{
visibility: hidden;
height: 0px;
}
$('#business_option').addClass('invis');
我的第一项表现规则: 在它缓慢之后担心它,不要浪费时间尝试做一些不慢的东西。它太贵了。干净的代码首先出现。
除了这种情况下的类切换比js-&gt; css编辑要快得多,因为它避免了redundent回流。并且样式对象实际上并不存在,它是在你“获取”它时创建的(afaik)。