首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用按钮切换嵌套列表

如何使用按钮切换嵌套列表
EN

Stack Overflow用户
提问于 2017-05-12 17:47:52
回答 2查看 353关注 0票数 1

我创建了一个带有嵌套的列表,并向每个父<li>元素添加了一个按钮。清单如下:

代码语言:javascript
运行
复制
$("#pr1").append("<button id='bnt-cat13' class='buttons-filter'>expnd1</button>");
$("#pr2").append("<button id='bnt-cat13' class='buttons-filter'>expnd2</button>");
$("#pr3").append("<button id='bnt-cat13' class='buttons-filter'>expnd3</button>");

$(document).ready(function() {
  $("button").click(function() {
    $('li > ul').toggle();
  });
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="categories">
  <li>1</li>
  <li class="parent" id="pr1">2
    <ul class="children">
      <li>2.1</li>
    </ul>
  </li>
  <li>3</li>
  <li class="parent" id="pr2">4
    <ul class="children">
      <li>4.1</li>
      <li class="parent" id="pr3">4.2
        <ul class="children">
          <li>4.2.1</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>5</li>
</ul>

但是这一个切换所有列表,而不是只切换单独的嵌套列表?如何只显示/隐藏单独的嵌套列表,单击按钮?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-12 17:57:10

至于主要问题--而不是每个li > ul元素,您必须只toggle位于button前面的ul元素。所以你应该使用.prev()

代码语言:javascript
运行
复制
$("button").click(function() {
  $(this).prev().toggle();
});

代码语言:javascript
运行
复制
$("#pr1").append("<button id='bnt-cat131' class='buttons-filter'>expnd1</button>");
$("#pr2").append("<button id='bnt-cat132' class='buttons-filter'>expnd2</button>");
$("#pr3").append("<button id='bnt-cat133' class='buttons-filter'>expnd3</button>");

$(document).ready(function() {
  $("button").click(function() {
    $(this).prev().toggle();
  });
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="categories">
  <li>1</li>
  <li class="parent" id="pr1">2
    <ul class="children">
      <li>2.1</li>
    </ul>
  </li>
  <li>3</li>
  <li class="parent" id="pr2">4
    <ul class="children">
      <li>4.1</li>
      <li class="parent" id="pr3">4.2
        <ul class="children">
          <li>4.2.1</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>5</li>
</ul>

您的代码还有另一个应该修复的问题--每个按钮都具有相同的id属性(bnt-cat13)。

global attribute defines a unique identifier (ID) which must be unique in the whole document.

票数 2
EN

Stack Overflow用户

发布于 2017-05-12 17:56:46

将您的功能更改为:

代码语言:javascript
运行
复制
(document).ready(function() {
  $("button").click(function() {
    $(this).parent().children('ul').toggle();
  });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43943702

复制
相关文章

相似问题

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