我想使用JCarousel显示UL元素,LI只包含8个图像(两行四个),如下所示:
的
<li>
{
{1}}
[图像] [图像] [图像] [图像]
[图像] [图像] [图像] [图像]
<div>
{
{1}} {
{1}} {
{1}}
[图像] [图像] [图像] [图像]
[图像] [图像] [图像] [图像]
</div>
{
{1}}
我认为这样做的好方法是使用</li>
添加一些关闭和打开标签,如下所示:
<li>
但我想我误解了<div>
的性质,因为它似乎不会插入结束标记,除非它们带有开始标记。
使用</div>
有更好的方法吗?
答案 0 :(得分:1)
所以,你开始使用单ul
个li
,其中div
包含一大堆图片&amp;你想把它拆分成一组li
个,每个包含8个图像吗?如果是这样,这将有效:
var images = $("img");
while (images.length > 8) {
images.slice(8, 16).appendTo("ul").wrapAll("<li><div></div></li>");
images = images.slice(16);
}
基本上,它会从图像集合中裁掉8个图像块,然后将它们追加到ul
的{{1}}中(它将原始的li
与第1张图像保留在一起)。显然,您需要调整选择器,因为您可能在页面上有其他图像和无序列表。
编辑:解释li
无法正常运行的原因 - 我相信jQuery会尝试操作DOM而不是原始HTML。因此,除非可以解析并转换为实际的DOM节点,否则您不能只追加随机的HTML块。换句话说,您传递给.after
的内容实际上需要是一个有效且完整的HTML片段。所以,因为jQuery无法解决如何将“.after
”这样的东西变成一个节点,所以它的作用有点奇怪(我猜这种情况下它忽略了两个初始的关闭标签,因为它们不是' t自己有意义然后创建</div></li><li><div>
&amp; li
节点&amp;然后为你自动关闭它们。)