【发布时间】:2015-10-19 04:30:37
【问题描述】:
我有一个我想要在多个列中的项目列表。这些列可以基于一系列因素是任意的,因此还有一些其他的事情正在发生。不幸的是,我被如何关闭包含的 div 所欺骗。
假设我有这样的结构:
<div class="col-md-4 JS-columnGrid">
<li>one</li>
<li>two</li>
<li>three</li>
<!--</div>-->
<!--<div class="col-md-4">-->
<li>four</li>
</div>
我想在第三个列表元素之后关闭 col-md-4 div,并将第四个列表元素包裹在另一个 div class="col-md-4">
这将创建两列。
这里有一些 javascript 会抓取每个列表,将其放入一个数组中,然后我的意图是我可以使用该数组来决定我要在哪里剪切列。
var cutoffArray = [];
$(".JS-columnGrid > li").each(function(){
cutoffArray.push(this);
console.log(cutoffArray);
});
$(cutoffArray[3]).before("</div><div class='col-md-3'>");
不幸的是,这是在此之后的输出 HTML:
<div class="col-md-4 JS-columnGrid">
<li>one</li>
<li>two</li>
<li>three</li>
<div class="col-md-3"></div>
<li>four</li>
</div>
我哪里错了?
【问题讨论】:
-
<li>不是直接在div中的有效内容。 -
我认为您必须在第一个 div 之后添加另一个 div,并将元素移动到新 div 内。
-
是的,他是对的。
- 需要在
-
我认为应该是
<ul>、<ol>和<menu>(仅在FF中实现)标签仅。 -
@phtrivier 是正确的。你不能分割一个div。创建一个新的并移动项目。
标签: javascript jquery dom-manipulation