无法使用jQuery从带有GET_BODY_CLASS()的JSON字符串添加类

时间:2015-06-02 作者:JetXS

为了刷新<body>元素在AJAX调用之后,我在AJAX响应的顶部用JSON编写以下内容:$o[ \'classes\' ] = get_body_class(\'project\');

然后,我可以在JSON响应中看到以下内容:

"classes":["single","single-project" ,"postid-1793","logged-in","project","default"]

我正在尝试使用jQuery将所有这些类放入主体中,以便“刷新”它们并传输有关AJAX中加载的当前模板类的信息。

var thecontent_classes = data.classes;
//alert(thecontent_classes);
$(\'body\').removeClass();
$(\'body\').addClass(thecontent_classes);
遗憾的是,对于前面的代码,它无法正常工作,因为如果我使用警报测试变量的内容,它将添加JSON列表,其中所有类都由comas分隔。我尝试使用str.replace将comas替换为空格,但没有成功。。。也许有一种更简单的方法,要么使用PHP,要么使用str replace??

感谢您的时间和帮助。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

get_body_class() 将要return an array of classes, 然后(根据问题中未发布的代码)将JSON编码到逗号分隔的字符串中。虽然可以在JavaScript中操作,但最简单的方法是implode 编码前的字符串:

$c = get_body_class(\'project\');
$c = implode($c,\' \');
您应该有一个整洁的空格分隔字符串,无需进一步操作。

结束