【发布时间】:2011-09-12 09:03:59
【问题描述】:
我想实现类似于How to convert unordered list into nicely styled dropdown using jquery? 的问题,但使用分层 ul 列表。我想转换这个 HTML:
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About us</a>
<ul>
<li><a href="/about/staff">Staff</a></li>
<ul>
<li class="current-page"><a href="/about/staff/john-doe">John Doe</a></li>
<li><a href="/about/staff/jane-doe">Jane Doe</a></li>
</ul>
</ul>
</li>
<li><a href="/products">Products</a>
<ul>
<li><a href="/products/games">Games</a>
<ul>
<li><a href="/products/games/xbox">XBOX</a></li>
<li><a href="/products/games/ps3">PlayStation 3</a></li>
<li><a href="/products/games/ipad">iPad</a></li>
<li><a href="/products/games/iphone">iPhone</a></li>
</ul>
</li>
<li><a href="/products/hardware">Hardware</a>
<ul>
<li><a href="/products/hardware/controllers">Controllers</a></li>
<li><a href="/products/hardware/memory">Memory units</a></li>
</ul>
</li>
<li><a href="/products/upcoming">Upcoming</a></li>
</ul>
</li>
<li><a href="/contact">Contact us</a></li>
</ul>
到这里:
<select>
<option value="/">Home</option>
<option value="/about">About us</option>
<option value="/about/staff">- Staff</option>
<option value="/about/staff/john-doe" selected>-- John Doe</option>
<option value="/about/staff/jane-doe">-- Jane Doe</option>
<option value="/products">Products</option>
<option value="/products/games">- Games</option>
<option value="/products/games/xbox">-- XBOX</option>
<option value="/products/games/ps3">-- PlayStation 3</option>
<option value="/products/games/ipad">-- iPad</option>
<option value="/products/games/iphone">-- iPhone</option>
<option value="/products/hardware">- Hardware</option>
<option value="/products/hardware/controllers">-- Controllers</option>
<option value="/products/hardware/memory">-- Memory</option>
<option value="/products/upcoming">- Upcoming</option>
<option value="/contact">Contact us</option>
</select>
li 上的“current-page”类应将select 中的相应选项标记为selected。 jQuery 和 vanilla JavaScript 都可以。
【问题讨论】:
-
澄清一下:ul 列表在其层次结构中可以有三个以上的级别,因此不应对此有任何限制。
-
你有没有尝试过?请发布您的代码示例。
-
您是否尝试过从您与稍有不同的选择器链接的问题中的脚本开始?如果你让你的选择器选择你的根 ul 的所有 li 元素,然后将它们放在一个列表中,那么这应该可以解决大部分问题......
标签: javascript jquery html