jQuery展开折叠定义列表(DL)中的所有DT标签

Obi*_*obi 3 html treeview jquery

这是我想要完成的一个例子,除了它使用列表(UL和LI):http://homework.nwsnet.de/news/ea21_turn-nested-lists-into-a-collapsible-tree-with -jquery

我的数据使用DL,DT和DD标签构建,如下所示:

<dl>
  <dt>Root</dt>
  <dd>
    <dl>
      <dt>Coffee</dt>
      <dd>black hot drink</dd>
      <dt>Milk</dt>
      <dd>white cold drink</dd>
      <dt>Beer</dt>
      <dd>
        <dl>
          <dt>European</dt>
          <dd>Heineken</dd>
          <dt>Mexican</dt>
          <dd>Corona</dd>
        </dl>
      </dd>
    </dl>
  </dd>
</dl>
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery将每个DT(及其相应的DD内容)转换为可折叠/可扩展的节点,即树视图?

Yi *_*ang 8

在它的最基本的,你可以简单地使用toggleclick事件处理程序来做到这一点:

// When any dt element is clicked
$('dt').click(function(e){
    // All dt elements after this dt element until the next dt element
    // Will be hidden or shown depending on it's current visibility
    $(this).nextUntil('dt').toggle();
});

// Hide all dd elements to start with
$('dd').hide();
Run Code Online (Sandbox Code Playgroud)

当然,您将要使用toggleClass适当的添加其他样式以及其他效果.见:http://www.jsfiddle.net/yijiang/EA4R5/1/