首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从父元素定位到子元素

从父元素定位到子元素
EN

Stack Overflow用户
提问于 2014-07-08 04:30:34
回答 4查看 65关注 0票数 0

我有几个列(ul)包含列表(li)。当我单击其中一个元素时,我想首先在列表中找到这个元素,它有一个类'all‘

代码语言:javascript
复制
<div id=1>
    <ul>
        <li class="list all">ALL</li>
        <li class="list">1</li>
        <li class="list">2</li>
    </ul>
    <ul>
        <li class="list">3</li>
        <li class="list">4</li>
    </ul>
    <ul>
        <li class="list">5</li>
        <li class="list">6</li>
    </ul>
</div>
<div id=2>
    <ul>
        <li class="list all">ALL</li>
        <li class="list">1</li>
        <li class="list">2</li>
    </ul>
    <ul>
        <li class="list">3</li>
        <li class="list">4</li>
    </ul>
    <ul>
        <li class="list">5</li>
        <li class="list">6</li>
    </ul>
</div>

在单击任何class="list“时,我希望将"selected”元素addClass为class="all“元素,但只适用于同一包含div的元素。我只是不能用正确的选择器来找到它

代码语言:javascript
复制
parent = $(this).parent().parent().children().$('.all').addClass('selected');

但是它不起作用,我不知道它将如何在包含的div中选择第一个ul。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-08 04:35:18

你可以这样做:

代码语言:javascript
复制
$(".list").click(function(){

$(this).closest("div").find(".all").first().addClass("selected")

})

小提琴演示

单击li父级div,然后查找具有类的第一个元素,所有并添加选中的类。

修订代码:

代码语言:javascript
复制
$(".list").click(function(){

    $(".all.selected").removeClass("selected");
    $(this).closest("div").find(".all").first().addClass("selected")

    })

修正小提琴

票数 0
EN

Stack Overflow用户

发布于 2014-07-08 04:32:47

可以使用.closest()查找单击listdiv父元素,然后使用.find()to find the.all`元素

代码语言:javascript
复制
parent = $(this).closest('div').find('.all').addClass('selected');

演示:小提琴

票数 0
EN

Stack Overflow用户

发布于 2014-07-08 04:33:24

尝试使用closest查找div类型的直系亲属,然后搜索带有类all的子代,并根据您的意愿为其添加类。

代码语言:javascript
复制
$(".all" , $(this).closest('div')).addClass('selected');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24623748

复制
相关文章

相似问题

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