首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历到与单击的元素最近的元素jquery

遍历到与单击的元素最近的元素jquery
EN

Stack Overflow用户
提问于 2013-06-28 13:26:27
回答 5查看 248关注 0票数 0

我的html中有这样的设置。

代码语言:javascript
复制
<section class="grp">
  <ul class="normal">
    <li>Normal Thing <button class="toggle-advanced">toggle advanced</button></li>
  </ul>
  <ul class="advanced">
    <li>This is Advanced</li>
  </ul>
</section>
<h1>Another Thing</h1>
<section class="grp">
  <ul class="normal">
    <li>Normal Thing <button class="toggle-advanced">toggle advanced</button></li>
  </ul>
  <ul class="advanced">
    <li>This is Advanced</li>
  </ul>
</section>

如果我点击ul.normal中的按钮,如何切换“高级”ul

我在coffeescript中尝试这样做

代码语言:javascript
复制
$('.normal').on 'click', '.toggle-advanced', (e) ->
  $(@).closest('.grp').siblings('.advanced').slideToggle();
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-06-28 13:30:02

由于jquery是标记的.使用jquery

代码语言:javascript
复制
$('.toggle-advanced').click(function(){
    $(this).parents('ul.normal').siblings('ul.advanced').toggle();
});

代码语言:javascript
复制
$('.toggle-advanced').click(function(){
    $(this).parents('.grp').find('ul.advanced').toggle();
});

这些应该是有效的,除非你是动态添加内容..如果是动态添加,则使用on()

代码语言:javascript
复制
$('.normal').on('click', '.toggle-advanced', function(){
   $(this).parents('.grp').find('ul.advanced').toggle();
});
票数 2
EN

Stack Overflow用户

发布于 2013-06-28 13:30:53

.advanced不是.grp元素的同级元素,而是父.normal元素的同级元素

代码语言:javascript
复制
$(@).closest('.normal').siblings('.advanced').slideToggle();

javascript等价物将是

代码语言:javascript
复制
$('.normal').on('click', '.toggle-advanced', function(){
    $(this).closest('.normal').siblings('.advanced').slideToggle();
})
票数 1
EN

Stack Overflow用户

发布于 2013-06-28 13:31:13

你可以试试这个

代码语言:javascript
复制
$(".toggle-advanced").on('click', function(){

    $(this).closest(".normal").siblings('.advanced').slideToggle();

});

此代码基于jquery

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17357773

复制
相关文章

相似问题

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