如何解决jQuery .after未按预期插入
编辑:找到解决方案如何使用jquery用html包装每3个子div? 我正在打印包含很多“ 0”的列表,并希望使用jQuery在每6个“ 0”之后插入一个“ 1”。 自然地,那就像$(\'#staffscroll .person:nth-child(5n)\').after(\'</div><div class=\"clearfix\">\');
但是输出变为<div class=\"clearfix\"></div>
,这没有任何意义。
有什么想法吗?
好的,也许应该提供更多代码。
我正在使用幻灯片脚本。基本上,整个过程是将东西放入ѭ0中。
例如..
<div id=\"slideshow\">
<div class=\"clearfix\"> First slide wrapper
<img>
<img>
<img>
<img>
</div>
<div class=\"clearfix\"> Second slide wrapper
<img>
<img>
<img>
<img>
</div>
<div class=\"clearfix\"> Third slide wrapper
<img>
<img>
</div>
</div>
问题是我也在使用CMS,而CMS对动态输出的控制却不多。所以我的想法是,我只能输出所有内容,然后再提供幻灯片包装器。
因此the1ѭ
哈夫现在不知道它是否有意义,但是我希望你能理解我正在尝试做的事情。
解决方法
您尝试插入的语句不是正确的XML。您正在考虑将HTML文档看作一个大字符串,但是如果您想使用jQuery之类的工具,这是错误的方法。
我建议您进一步了解DOM及其用法。您的整个方法是错误的,因此您的代码示例不正确。
, IIRC,jQuery将字符串解析为DOM片段,然后将其插入。解析
</div><div class=\"clearfix\">
时,假定</div>
是错误,并且还关闭<div class=\"clearfix\">
。因此,您观察到的效果。
, 那是因为ѭ11并没有修改HTML,而是在创建新的DOM元素并将其添加到文档中。您应该使用ѭ12来包装一组元素。我的猜测是您的代码将如下所示:
var start = 0,$list = $(\'#staffscroll .person\').slice(0,6);
while ($list.length) {
$list.wrapAll(\'<div class=\"clearFix\"></div>\');
start += 6;
$list = $list.end().slice(start,start + 6);
}
jsFiddle工作示例
, 当我将.wrapAll替换为.append或类似名称时?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。