包含多个元素的函数Jquery

时间:2015-06-25 12:07:27

标签: javascript jquery

我在Jquery中有这个功能

function row_content(col1, col2) {
		var divs = col1 + col2;

		for(var n = 0; n < divs.length; n+=2){
			divs.slice(n, n+2).wrapAll('<div class="row-content"></div>');
		}
	}

	var col_2_3 = $('.col_2_3');
	var col_1_3 = $('.col_1_3');

	row_content(col_2_3, col_1_3);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class='col_2_3'>Test</div>
<div class='col_1_3'>Test</div>

<div class='col_2_3'>Test</div>
<div class='col_1_3'>Test</div>

我希望,使用此函数在.row-content中包装两个div,但它不起作用。

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

问题是

var divs = col1 + col2;

col1,col2是jQuery对象。上面的行连接输入,组合选择器。所以length不会按你的意愿工作。

使用jQuery .add()

var divs = col1.add(col2);

http://jsfiddle.net/7w6by7Lz/

答案 1 :(得分:0)

$('.col_2_3, .col_1_3').wrapAll("<div class='row-content' />");

演示http://jsfiddle.net/5kcr44pv/

更新:OP忘记提及有多个cols

只要两个类都有相同数量并且它们交替,下面就可以工作。

var cols_2_3 = $('.col_2_3');
var cols_1_3 = $('.col_1_3');

cols_2_3.each(function (index, el) {
    $($(cols_2_3[index]).add(cols_1_3[index])).wrapAll("<div class='row-content' />");
});

DEMO:http://jsfiddle.net/5kcr44pv/1/

答案 2 :(得分:0)

var wrapper = $('<div class="row-content"></div>');
$('.col_2_3, .col_1_3').wrapAll(wrapper);

FIDDLE DEMO