包装元素的jquery
我有这个代码,每3个我都需要用div来包装 (原件)包装元素的jquery,jquery,Jquery,我有这个代码,每3个我都需要用div来包装 (原件) (应该成为) 对水平填充内容的每个“子div”应用一个类,并给它CLRR:both;作为css atribute,它将以您想要的方式显示。如果要垂直显示,请应用float:left;相反。这是一项艰巨的工作,可能不是最明智的做法: var $entries = $("#entries"); var $div = $('<div></div>').appendTo($entries); while($div.next
(应该成为)
对水平填充内容的每个“子div”应用一个类,并给它CLRR:both;作为css atribute,它将以您想要的方式显示。如果要垂直显示,请应用float:left;相反。这是一项艰巨的工作,可能不是最明智的做法:
var $entries = $("#entries");
var $div = $('<div></div>').appendTo($entries);
while($div.next().length > 0){
$div.append($div.nextAll().slice(0,3));
$div = $('<div></div>').appendTo($entries);
}
var$entries=$(“#entries”);
var$div=$('').appendTo($entries);
而($div.next().length>0){
$div.append($div.nextAll().slice(0,3));
$div=$('').appendTo($entries);
}
我已经准备好了这个插件,很好地完成了这项工作
(function($){
$.fn.wrapChildren = function(options) {
var options = $.extend({
childElem : undefined,
sets : 1,
wrapper : 'div'
}, options || {});
if (options.childElem === undefined) return this;
return this.each(function() {
var elems = $(this).children(options.childElem);
var arr = [];
elems.each(function(i,value) {
arr.push(value);
if (((i + 1) % options.sets === 0) || (i === elems.length -1))
{
var set = $(arr);
arr = [];
set.wrapAll($("<" + options.wrapper + ">"));
}
});
});
}
})(jQuery);
这里有一个游戏。将/edit添加到URL以播放代码
编辑:
如果它被证明有用的话,我很想把它变成一个更成熟的插件
我已经创建了var$c=$(“#条目”);
而($c.children('a')。长度){
$c.children('a:lt(3)')。wrapAll('');
}
在上使用演示(尽管使用不同的HTML结构)认为需要更多信息,这只是纯HTML还是您从其他地方生成的HTML?为提供灵活的解决方案而感到荣幸。这似乎没有按预期工作。它在条目的末尾追加一个
,
`然后检查是否有下一个元素,因为
被追加到末尾。
var $entries = $("#entries");
var $div = $('<div></div>').appendTo($entries);
while($div.next().length > 0){
$div.append($div.nextAll().slice(0,3));
$div = $('<div></div>').appendTo($entries);
}
(function($){
$.fn.wrapChildren = function(options) {
var options = $.extend({
childElem : undefined,
sets : 1,
wrapper : 'div'
}, options || {});
if (options.childElem === undefined) return this;
return this.each(function() {
var elems = $(this).children(options.childElem);
var arr = [];
elems.each(function(i,value) {
arr.push(value);
if (((i + 1) % options.sets === 0) || (i === elems.length -1))
{
var set = $(arr);
arr = [];
set.wrapAll($("<" + options.wrapper + ">"));
}
});
});
}
})(jQuery);
$(function() {
$('#entries').wrapChildren({ childElem : 'a' , sets: 3});
});
var $c = $('#entries');
while ($c.children('a').length) {
$c.children('a:lt(3)').wrapAll('<div>');
}