Я пытаюсь обернуть определенное количество элементов в div
. Проблема в том, что количество элементов может варьироваться в зависимости от ввода пользователя. Таким образом, количество элементов может быть 2, 3, 4 или даже больше. У меня есть переменная, которая сообщает мне, сколько элементов должно быть обернуто. Так, например, моя страница может иметь это:jquery add or slice
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
Теперь мне нужно, чтобы обернуть те в другом div
на основе моей переменной. Так что, если моя переменная провела значение 3, это будет выглядеть следующим образом:
<div class="testing">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
<div class="testing">
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</div>
Я использую этот код:
$(this).add($(this).next())
.add($(this).next().next())
.wrapAll('<div class="testing"></div>');
Проблема в том, что я должен был бы знать, сколько элементы будут там. Есть ли динамичный способ сделать это? Я также видел функцию slice
и пытался использовать его как это:
for(var i=0;i<img_cnt;i+=img_row){
obj.children().slice(i,i+img_row).wrapAll('<div class="row"></div>');
}
Это не работает, хотя. У меня есть 8 div
s. Это должно быть обертывание 3 вместе, поэтому у меня должно быть 3 новых div
s с 3 в первых 2 и 2 в последнем, так как есть только 8 div
s. Тем не менее, я получаю 3 div
s в первом новом div
, затем следующие 2 div
s не обертываются вообще, а затем последние 3 div
s обернуты в новый div
. Я не уверен, почему это не делает это правильно. Есть ли у вас какие-либо идеи о том, как это сделать или, может быть, даже лучший метод?
Спасибо, что, кажется, работает, но по какой-то причине он пропускает первый элемент. Есть идеи? – ngreenwood6
Убедитесь, что вы используете 'i = 0' и что вы не забыли' .next() 'где-то там. Он должен хорошо работать, можете ли вы разместить минимальный пример, где это не работает? (Попробуйте http://jsbin.com/) – Kobi
его странный он работает, но не в firefox. также заметил, что последнее изображение не завернуто. Я предполагаю, что это, вероятно, потому, что первый не обернут. – ngreenwood6