将css类添加到DOM主体的安全且最快捷的方法

con*_*att 33 javascript jquery

我希望在DOM的body元素中添加一个类.对于这么简单的东西,并且body元素本身加载速度很快(至少,我认为它会加载比DOM中埋藏的元素更快),我必须真的等待jQuery Ready事件做这样的事情简单的任务?我希望在将样式添加到正文时避免"闪烁"效果,因为我将添加不同的CSS样式,这个类在添加时生效.

我可以这样做:

  jQuery(window.document).ready(function () {
    jQuery("body").addClass("home");
  });
Run Code Online (Sandbox Code Playgroud)

但是有更快,更安全的方式吗?我不在乎它的jQuery或原生JavaScript

小智 84

document.body.className += ' ' + 'home';
Run Code Online (Sandbox Code Playgroud)

表现比较:classNamevsclassListvsaddClass:

更新(根据PSL的评论)

或者对于新的 document.body.classList.add("home");

  • 或者对于较新的`document.body.classList.add("home");` (14认同)
  • 确保它在`<body>`内 (3认同)
  • `className` vs`classList`vs.allClass`:http://jsperf.com/classlist-adclass/3 (2认同)