Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向DOM主体中添加css类的最安全、最快捷的方法_Javascript_Jquery - Fatal编程技术网

Javascript 向DOM主体中添加css类的最安全、最快捷的方法

Javascript 向DOM主体中添加css类的最安全、最快捷的方法,javascript,jquery,Javascript,Jquery,我希望向DOM的body元素添加一个类。对于如此简单的事情,并且由于body元素本身加载速度很快(至少,我认为它的加载速度会比埋在DOM中的元素快),我真的必须等待jqueryready事件来完成如此简单的任务吗?我希望在向主体添加样式时避免出现“闪烁”效果,因为我会将不同的CSS样式附加到该类,并在添加时生效 我可以这样做: jQuery(window.document).ready(function () { jQuery("body").addClass("home");

我希望向DOM的body元素添加一个类。对于如此简单的事情,并且由于body元素本身加载速度很快(至少,我认为它的加载速度会比埋在DOM中的元素快),我真的必须等待jqueryready事件来完成如此简单的任务吗?我希望在向主体添加样式时避免出现“闪烁”效果,因为我会将不同的CSS样式附加到该类,并在添加时生效

我可以这样做:

  jQuery(window.document).ready(function () {
    jQuery("body").addClass("home");
  });

但是有没有一种更快、更安全的方法呢?我不在乎它的jQuery或本机JavaScript是否在打开
body
标记之后,您可以创建一个脚本标记:

<body>
<script>
    $('body').addClass('home')
</script>
<!-- HTML content bellow -->
</body>

$('body').addClass('home'))
唯一的条件是jQuery被加载到
头中

document.body.className += ' home';
className
vs
classList
vs
addClass

更新(基于PSL的评论)


或者对于较新的
document.body.classList.add(“home”)

请确保在
下执行此操作,如果从
脚本应用,则此操作将不起作用


我不知道你所说的“安全”是什么意思——它看起来非常安全和快速(速度取决于内容的数量)。为了避免闪烁效果,我通常使用CSS隐藏主体,并在所有脚本运行后使用jQuery显示。它确实有时会出错,例如,一个元素的大小取决于另一个元素的大小,但是这些脚本只需要在显示主体的行之后。最安全和最快的方法是进入HTML并将类添加到
元素中当然最快和最安全的方法是将其放入主体标记中@Alnitak为true,但我使用的是ASP.NET母版页,我只希望在呈现主页时添加此类。对于较新的
document.body.classList.add(“主页”)确保它在里面
@PSL:你真的试过比较这些吗???那个测试(分配处理程序与执行jQuery代码片段)毫无意义,它什么也证明不了?我是否在额外的加号上遗漏了什么?@Pete:没有,但我投票让它保持这样,以强调空间的需要。但这只是我的意见。你还建议了太多的空间。