JQuery添加<body>类,需要更多帮助



我有这个代码片段来解析URL并向我的HTML页面的<body>标记添加一个类。

var pathname = window.location.pathname;
var pathSlashesReplaced = pathname.replace(///g, " ");
var pathSlashesReplacedNoFirstDash = pathSlashesReplaced.replace(" ","");
var newClass = pathSlashesReplacedNoFirstDash.replace(/(.[sS]+)/ig, "");
$("body").attr("class",newClass);
if ( $("body").attr("class") == "")
{
$("body").addClass("class");
}

我遇到的问题是它删除了已经存在的主体类。相反,我想添加到任何存在的主体类,而不是覆盖。

使用

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

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

这是一个setter: $("body").attr("class",newClass);,它将类设置为newClass,并且不追加它。

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/

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

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

另外,由于您刚刚向body添加了一个类,下面的代码将始终为假:

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

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

最新更新