使用removeClass和addClass替换div的类

时间:2013-09-07 21:04:53

标签: php jquery addclass removeclass

对于我的新wordpress网站,我需要一些帮助。我有4页和2个不同的侧边栏。在2个页面上不应该有border-left,在另外2个页面上应该有border-left。所以我得到了以下代码:

<div id="sidebar" class="sidebar">
        <?php if(is_page('Willkommen') || is_page('Angebot'))
            {
                dynamic_sidebar('Angebot');
            }

            else
            {
                dynamic_sidebar('Anfahrt');
                if(is_page('Anfahrt'))
                {
                    echo "<script type='text/javascript'>
function removeBorder()
{
    $(document).ready(function() {
        if($('#sidebar').hasClass('sidebar'))
        {
            $(this).removeClass('sidebar')
            $(this).addClass('secondsidebar')
        }

    });
}
</script>";
                }
            }
        ?>
    </div><!-- sidebar -->

如果页面上有div#sidebar,我想删除“侧边栏”类并添加“secondsidebar”类。但是代码不起作用。我为自己编写了这段代码,我是jQuery的初学者:)所以请耐心等待。

我希望有人可以给我一个提示。

干杯

1 个答案:

答案 0 :(得分:2)

也应该可以使用纯PHP解决方案。

<div id="sidebar" class="<?php if (is_page('Anfahrt')) : ?>secondsidebar<?php else : ?>sidebar<?php endif; ?>">
    <?php
    if (is_page('Willkommen') || is_page('Angebot')) {
        dynamic_sidebar('Angebot');
    }

    else {
        dynamic_sidebar('Anfahrt');
    }
    ?>
</div>

注意:尽量不要使用具有相同名称的ID和类。 <{1}}和#sidebar可能会让您感到困惑。

类的解释:

.sidebar

当服务器读取此内容时(PHP是服务器执行的代码>,然后将结果呈现给用户),它将转到“class”并注意到if语句。 “我应该在这个元素的<div id="sidebar" class="<?php if (is_page('Anfahrt')) : ?>secondsidebar<?php else : ?>sidebar<?php endif; ?>"> 中添加什么文字?”然后服务器看到说明:

  • 如果页面为“Anfahrt”:要返回的文本应为class=""
  • 否则(在所有其他情况下):文字应为secondsidebar

“文字”在这里并不是一个好名字。但你明白我的意思。然后将此“文本”放在if语句所在的位置。然后结果是(因为它返回给用户):

如果页面是“Anfahrt”:

sidebar

如果页面是其他内容:

<div id="sidebar" class="secondsidebar">