JQuery 添加类,需要更多帮助

发布于 2024-12-14 08:07:55 字数 483 浏览 0 评论 0原文

我有这段代码来解析 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

独夜无伴 2024-12-21 08:07:56

使用 addClass 而不是 attr('class', newClass)addClass 还接受以空格分隔的类名列表,并正确添加它们。

$("body").addClass(newClass);
if ( $("body").attr("class") == "") // Makes no sense, since you have previously 
{                                   // added `newClass`
    $("body").addClass("class");
}

有关 addClass 的文档,请参阅 http://api.jquery.com/addClass/< /a>

Use addClass instead of attr('class', newClass). The addClass also accepts a white-space separated list of class names, and correctly adds them.

$("body").addClass(newClass);
if ( $("body").attr("class") == "") // Makes no sense, since you have previously 
{                                   // added `newClass`
    $("body").addClass("class");
}

For documentation on addClass, see http://api.jquery.com/addClass/

请持续率性 2024-12-21 08:07:56

.attr("class", newClass) 正在删除所有现有的类。您应该改用 .addClass():此外

$("body").addClass(newClass);

,由于您刚刚向 body 添加了一个类,因此下面的代码将始终为 false:

if ( $("body").attr("class") == "") { }

.attr("class", newClass) is removing all existing classes. You should be using .addClass() instead:

$("body").addClass(newClass);

In addition, since you've just added a class to body, the code below will always be false:

if ( $("body").attr("class") == "") { }
一枫情书 2024-12-21 08:07:56

使用 addClass 函数 - http://api.jquery.com/addClass/

Use addClass function instead - http://api.jquery.com/addClass/

世俗缘 2024-12-21 08:07:55

使用这个:

$("body").addClass(newClass);

而不是

$("body").attr("class",newClass);

This is a setter: $("body").attr("class",newClass); 它将类设置为 newClass 并且不附加它。

Use this:

$("body").addClass(newClass);

instead of

$("body").attr("class",newClass);

This is a setter: $("body").attr("class",newClass); which sets the class to the newClass and does not append it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文