【发布时间】:2012-12-25 15:23:35
【问题描述】:
首先,圣诞快乐!
希望没有其他人在圣诞节工作,除非他们是淘汰赛专家并且真的有帮助我的冲动;-)
我正在使用美妙的jQuery Column Navigation Plugin 以多列方式向我的用户显示数据。它在我的静态测试中运行良好,但现在将其实现到生产代码中,我遇到了一些希望不太难解决的问题。
当列表变大时,它需要在 ul 元素中包含一个 div 以允许滚动。这里的问题是我用来创建列的 foreach 将每个子元素包装在一个 div 中,而不是整个子集合。
例如:
我应该生成如下所示的 HTML
<div id="myTree">
<ul>
<div> <!-- required to allow scrolling within each column -->
<li>
<a>Homepage</a>
<ul>
<div>
<li><a>Contact</a></li>
<li><a>Terms & Conditions</a></li>
<li><a>Privacy information</a></li>
</div>
</ul>
</li>
<li>
<a>Contents</a>
<ul>
<div>
<li><a>Page 1</a></li>
<li>
<a>Page 2</a>
<ul>
<div>
<li><a href="./page2.1/">Page 2.1</a></li>
<li><a href="./page2.2/">Page 2.2</a></li>
</div>
</ul>
</li>
<li><a>Page 3</a></li>
</div>
</ul>
</li>
</div>
</ul>
但是使用这个淘汰码
<div id="whatever" style="width: 100%">
<ul data-bind="foreach: { data: Column1 }">
<div>
<li><a data-bind="text: Name"></a>
<ul data-bind="foreach: { data: Column2 }">
<div>
<li><a data-bind="text: Name"></a>
<ul data-bind="foreach: { data: Column3 }">
<div>
<li><a data-bind="text: Name, attr: { 'href': Url }"></a></li>
</div>
</ul>
</li>
</div>
</ul>
</li>
</div>
</ul>
我最终得到的 HTML 看起来像
<div id="myTree">
<ul>
<div> <!-- required to allow scrolling within each column -->
<li>
<a>Homepage</a>
<ul>
<div>
<li><a>Contact</a></li>
</div>
<div>
<li><a>Terms & Conditions</a></li>
</div>
<div>
<li><a>Privacy information</a></li>
</div>
</ul>
</li>
<li>
<a>Contents</a>
<ul>
<div>
<div>
<li><a>Page 1</a></li>
</div>
<li>
<a>Page 2</a>
<ul>
<div>
<li><a href="./page2.1/">Page 2.1</a></li>
</div>
<div>
<li><a href="./page2.2/">Page 2.2</a></li>
</div>
</ul>
</li>
<li><a>Page 3</a></li>
</div>
</ul>
</li>
</div>
</ul>
如何让内部 DIV 包装所有子记录,而不是父记录中的单个子记录??
非常感谢您的帮助,再次祝您圣诞快乐。
【问题讨论】:
-
不会把 foreach 放在 div 而不是 ul 上做你想做的事吗?
-
如果我修改了脚本,我宁愿不这样做,如果我能帮忙的话。这更像是一个关于如何使用敲除处理这种类型的 HTML 的问题
标签: html knockout.js