首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery如何向父div添加类,该父div具有具有特定类名的第三级子div

jQuery如何向父div添加类,该父div具有具有特定类名的第三级子div
EN

Stack Overflow用户
提问于 2011-01-08 05:50:00
回答 1查看 2.3K关注 0票数 1

你好,朋友们,我有一个问题,添加一个特殊的类到我的几个div。我的布局是这样的。

代码语言:javascript
复制
<div class="container">
    <div class="grid-6 push-3 equal" style="height: 999px;">
        <div class="block">
            <div id="mainbody"> 
                <!-- Body content here --> 
            </div>
        </div>
    </div>

    <div class="grid-2 equal" style="height: 999px;">
        <div class="block">
            <div id="sidebar-a"> 
                <!-- Sidebar-a content here --> 
            </div>
        </div>
    </div>

    <div class="grid-2 equal" style="height: 999px;">
        <div class="block">
            <div id="sidebar-b"> 
                <!-- Sidebar-b content here --> 
            </div>
        </div>
    </div>

    <div class="grid-2 equal" style="height: 999px;">
        <div class="block">
            <div id="sidebar-c"> 
                <!-- Sidebar-c content here --> 
            </div>
        </div>
    </div>
</div>

我想通过CSS为我的每个侧边栏添加不同的背景色,当我编写如下代码时:

代码语言:javascript
复制
#mainbody { background : #fff; }
#sidebar-a { background : #eee; }
#sidebar-b { background : #ddd; }
#sidebar-c { background : #ccc; }

它仅将背景应用于该特定类,但该特定类不具有相同的高度。我实际上需要申请这个<div class="grid-2 equal" style="height: 999px;"> div。

现在的问题是在这个

<div class="grid-6 push-3 equal" style="height: 999px;"><div class="grid-2 equal" style="height: 999px;">

类名grid-6grid-2是由我的960网格系统的PHP动态生成的,style="height: 999px;也是由一个用于相等列的jQuery脚本生成的。

我想要的是添加一个唯一的类名,就像这样......查找class.equaldiv,其child divclass.block,并且进一步具有child divIDsidebar-a

如果为TRUE,则将.sidebar-aclass添加到class.equal的主div

所以结果看起来像这样:

代码语言:javascript
复制
<div class="grid-6 equal push-3 mainbody" style="height: 999px;">
<div class="grid-2 equal sidebar-a" style="height: 999px;">
<div class="grid-2 equal sidebar-b" style="height: 999px;">
<div class="grid-2 equal sidebar-c" style="height: 999px;">

然后我就可以像这样设置样式了:

代码语言:javascript
复制
.mainbody { background : #fff; }
.sidebar-a { background : #eee; }
.sidebar-b { background : #ddd; }
.sidebar-c { background : #ccc; }

因此我想,既然我在模板中使用了jQuery,为什么不用它来解决这个问题呢?如果你有其他想法,请随时建议一个更好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-08 05:58:19

您可以在一个标准的div选择器中执行选择逻辑,然后对于找到的每个侧边栏,遍历DOM树,找到带有类equal的第一个jQuery,并使用每个侧边栏的id的名称将一个类附加到它:

代码语言:javascript
复制
$('div.equal div.block div[id^="sidebar"]').each(function() {
    $(this).closest('div.equal').addClass(this.id);
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4630620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档