JQuery 添加类,需要更多帮助
我有这段代码来解析 URL 并将一个类添加到 HTML 页面的 标记中。
var pathname = window.location.pathname;
var pathSlashesReplaced = pathname.replace(/\//g, " ");
var pathSlashesReplacedNoFirstDash = pathSlashesReplaced.replace(" ","");
var newClass = pathSlashesReplacedNoFirstDash.replace(/(\.[\s\S]+)/ig, "");
$("body").attr("class",newClass);
if ( $("body").attr("class") == "")
{
$("body").addClass("class");
}
我遇到的问题是它删除了现有的主体类。相反,我想附加到存在的任何主体类而不是覆盖。
I have this snippet of code to parse the URL and add a class to the <body>
tag of my HTML page.
var pathname = window.location.pathname;
var pathSlashesReplaced = pathname.replace(/\//g, " ");
var pathSlashesReplacedNoFirstDash = pathSlashesReplaced.replace(" ","");
var newClass = pathSlashesReplacedNoFirstDash.replace(/(\.[\s\S]+)/ig, "");
$("body").attr("class",newClass);
if ( $("body").attr("class") == "")
{
$("body").addClass("class");
}
The issue I am having is that it deletes existing body classes already there. Instead, I would like to append to whatever body classes exist and not overwrite.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用
addClass
而不是attr('class', newClass)
。addClass
还接受以空格分隔的类名列表,并正确添加它们。有关
addClass
的文档,请参阅 http://api.jquery.com/addClass/< /a>Use
addClass
instead ofattr('class', newClass)
. TheaddClass
also accepts a white-space separated list of class names, and correctly adds them.For documentation on
addClass
, see http://api.jquery.com/addClass/.attr("class", newClass)
正在删除所有现有的类。您应该改用.addClass()
:此外,由于您刚刚向
body
添加了一个类,因此下面的代码将始终为 false:.attr("class", newClass)
is removing all existing classes. You should be using.addClass()
instead:In addition, since you've just added a class to
body
, the code below will always be false:使用 addClass 函数 - http://api.jquery.com/addClass/
Use addClass function instead - http://api.jquery.com/addClass/
使用这个:
而不是
This is a setter:
$("body").attr("class",newClass);
它将类设置为 newClass 并且不附加它。Use this:
instead of
This is a setter:
$("body").attr("class",newClass);
which sets the class to the newClass and does not append it.