Это самый простой способ, я думаю,
var reverse = function(str) {
var arr = [];
for (var i = 0, len = str.length; i <= len; i++) {
arr.push(str.charAt(len - i))
}
return arr.join('');
}
console.log(reverse('I want a
Вы можете использовать метод .wrapAll()
.
$('form > input').each(function(){
$(this).next('label').andSelf().wrapAll('<div class="test"/>');
});
Если ваша разметка всегда имеет тот же порядок, я бы предпочел использовать:
var $set = $('form').children();
for(var i=0, len = $set.length; i < len; i+=2){
$set.slice(i, i+2).wrapAll('<div class="test"/>');
}
Should будет значительно быстрее.
Ref .: .wrapAll () , . andSelf () , .slice ()
$('input+label').each(function(){
$(this).prev().andSelf().wrapAll('<div>');
});
Если у вас есть что-то вроде этого:
<input id="input1">
<label id="label1">
<input id="input2">
<label id="label2">
Затем вы можете использовать jQuery:
jQuery("#input1").next().andSelf().wrapAll('<div id="newDiv" />');
jQuery("#input2").next().andSelf().wrapAll('<div id="newDiv" />');
и получить это:
<div id="newDiv">
<input id="input1">
<label id="label1">
</div>
<div id="newDiv">
<input id="input2">
<label id="label2">
</div>
Работал для меня: -)
Функция jQuery wrapAll позволяет вам обернуть несколько элементов, но если у вас есть DOM, как вы писали, значит, он не будет работать слишком хорошо, так как вы не можете легко совместить часть ярлыка и ввода с селектор. Я предлагаю добавить некоторые классы в каждую часть, а затем использовать wrapAll.
<input class="i1"/>
<label class="i1"/>
<input class="i2"/>
<label class="i2"/>
$('.i1').wrapAll('<div/>');
$('.i2').wrapAll('<div/>');
Это даст вам
<div>
<input class="i1"/>
<label class="i1"/>
</div>
<div>
<input class="i2"/>
<label class="i2"/>
<div>