我已经看到了很多类似问题的答案,但对于我的具体情况似乎无法弄清楚。我的 jQuery 逻辑仅适用于我的.each()
函数中的最后一个元素。谁能帮我理解为什么?最终,我试图将列表中的项目分成两列。
这是HTML:
<ul class="sub-menu">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
<li>item 8</li>
</ul>
<ul class="sub-menu">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
<li>item 8</li>
</ul>
<ul class="sub-menu">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
<li>item 7</li>
<li>item 8</li>
</ul>
这是我的 jQuery
<script type="text/javascript">
jQuery(document).ready(function(){
var col1 = jQuery('<li class="col1">col1</li>'); // object which I will append the list items into
var col2 = jQuery('<li class="col2">col2</li>'); // object which I will append the list items into
jQuery('.sub-menu').each(function() {
var items = jQuery(this).html(); // get original items from list
jQuery(this).empty(); // clear original items from list
jQuery(this).append(col1).append(col2); // just appending new columns for now, will add the original items to either col1 or col2 once this is working.
});
});
</script>
我的代码正确地捕获了原始列表项并清除了当前.sub-menu
列表,但随后将列添加到列表中仅发生在.each()
循环中的最后一个元素中。换句话说,这两列仅添加到最后一列.sub-menu
,而前两列最终没有列表项。
想法?