通过Javascript或php更改CSS类

通过Javascript或php更改CSS类,javascript,css,Javascript,Css,我想更改特定页面上的css类属性,但无法使其正常工作 我的密码是这个 if ( is_page(877) ) { //change CSS Class } else if ( is_page(970) ) { //change CSS Class } else { // Same CSS } 我试过所有这些,但什么也没试过 document.getElementById('header-aside').className = 'header-two-aside2';

我想更改特定页面上的css类属性,但无法使其正常工作

我的密码是这个

if ( is_page(877) ) { 
    //change CSS Class

} else if ( is_page(970) ) {
    //change CSS Class
} else {
    // Same CSS
}
我试过所有这些,但什么也没试过

document.getElementById('header-aside').className = 'header-two-aside2';

document.getElementById('header-aside').classList.add('header-two-aside2');

$('#header-aside').removeClass('header-two-aside');

$('#header-aside').addClass('header-two-aside');

我能做什么?

你所做的似乎是正确的。您需要确保is_page函数正确执行它所执行的任何操作,并且css类操作仅在文档对象就绪后运行。 您尚未将此帖子标记为jquery帖子,但由于您在示例中使用jquery,因此我也将使用jquery

现场演示:

使用

以确保您的文档已准备好进行操作

在某个地方有一些标识符来告诉你的脚本你在哪一页我在我的示例中使用了一个隐藏字段,如:

<input type="hidden" name="pageId" value="970" />
解决你的问题?解决了我能读到的你所问的所有问题; 尝试将fiddle的HTML部分顶部的输入字段的值更改为设置了样式的其他值,如877,然后点击页面左上角的run,观察div的背景颜色的变化


不过,您可以让服务器端php代码直接设置类,这对禁用javascript的用户有效,或者如果您不关心这些用户,请考虑客户端与服务器端真正需要运行什么。。客户端脚本应该添加交互或其他东西,而不仅仅是帮助一个懒惰的程序员风格的is页面

is_页面返回的是什么???并且你不会显示你的HTML.PHP是一种服务器端编程语言。除非通过PHP提供/准备样式表,否则无法更改CSS声明。if语句是否执行?尝试添加一些警报“…”以检查它们是否存在。您会得到什么行为?JavaScript异常?未更改的类属性?谢谢回答!我想要的是,每当加载某个页面时,某个css类都会发生更改,以便与页面首选项兼容。从你的回答中,我看不出这对我有什么帮助/让我们确保使用相同的web开发语言。我的意思是:加载一个页面=从浏览器到您的Web服务器的请求,Web服务器会用加载的页面进行响应。当您从服务器加载页面时,您已经指定了一些东西,可以让客户端代码知道您正在浏览的页面。在我的示例中,我使用了服务器提供的隐藏字段,您可以使用querystring、data属性或其他什么。我还将您的页面首选项理解为服务器上定义的内容,而不是用户选择的选项,例如切换主题。现在请解释您希望它工作的内容/方式:另外,您是否查看了我发布的演示?您必须通过更改中的值并单击找到的运行按钮来模拟加载不同的页面。根据你的代码,我这样做了:啊,但它根本不是javascript,这意味着它的服务器端代码,一旦你的网页在你的服务器上呈现并发送给你的客户端,浏览器中的代码已经被执行。但我很高兴听到你解决了这个问题。
<input type="hidden" name="pageId" value="970" />
function is_page(num){
    return $('input[name="pageId"][value="' + num + '"]').length > 0;
}