如何在标签内包装标签
我有这个,当我点击.items
类中的按钮创建
- img1
- img2
but i want every 3 -
- img1
- img3
to wrap them into a new - img2
- img4
---------------------------------> - img3
- img5
- img6
- img7
- img4
- img8
- img5
- img9
- img6
...
...
的index.php
我试过这些,但没有运气:
第一次尝试:
$('.item').first().before(""); $('.item').last().after("
");
第二次尝试:
$( "" ).insertBefore( ".item:first-child" ); $( "
" ).insertAfter( ".item:last-child" );
第三次尝试:
$( ".items" ).prepend( "" ); $( ".items" ).append( "
" );
第四次尝试:
$(".items li").each(function() { $(this).find("li").wrapAll("
"); });
第五次尝试:
$('.items li').each(function(){ var uls = $('li', this); for(var i = 0; i < uls.length; i+=3) { uls.slice(i, i+3).wrapAll('
'); } });
如果你能帮助我,我将不胜感激! 如果你想要其他文件,如javascript文件,php或数据库,只需告诉我添加它们! 提前致谢!
这不是DOM的工作原理,你不能单独插入开始和结束标签,你应该插入一个元素 。 ul
也不能是另一个ul
元素的子元素,它应该用li
元素包装。 要使用
包装每3个li
,您可以使用wrapAll
方法:
var $li = $('.items li'); for (var i = 0; i < $li.length; i+=3) $li.slice(i, i+3).wrapAll('
');
你需要把新的ul放在里面,你不能有ul – > ul,它是无效的标记。
所以它看起来像这样
-
-
在jquery中创建它就像这样
var mainUl = $(""); mainUl.append($("- ").append($("
").append("- ").append("
- ").append("
- "))) mainUl.append($("
- ").append($("
").append("- ").append("
- ").append("
- "))) mainUl.append($("
- ").append($("
").append("- ").append("
- ").append("li>")))
您可以更进一步,根据需要向’li’元素添加内容