Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перестановка элементов на странице + цикл (https://javascript.ru/forum/misc/32783-perestanovka-ehlementov-na-stranice-cikl.html)

DS_ 30.10.2012 09:33

Перестановка элементов на странице + цикл
 
Доброго времени суток :)

Мне нужно было переставить на странице, два элемента местами. Воспользовался этим скриптом:
jQuery.fn.swap = function(b) {
b = jQuery(b)[0];
var a = this[0],
a2 = a.cloneNode(true),
b2 = b.cloneNode(true),
stack = this;
a.parentNode.replaceChild(b2, a);
b.parentNode.replaceChild(a2, b);
stack[0] = a2;
return this.pushStack(stack);};

И сообственно что на что менять:
$('td.forumLastPostTd').swap('td.forumThreadTd');

Всё прекрасно меняется местами, но мне нужно, чтобы перестановка элементов произошла со всеми элементами, чьи классы я вписал в скрипт. Скорее всего, нужно воспользоваться циклом:
for(var i=0; i<a.length; i++) {...};

Пытался сделать самостоятельно, но ничего не вышло :cray:
И.. если не затруднит, могли бы Вы переписать скрипт, чтобы я мог вставлять больше классов для замены?
Что-то вроде такого:
$('td.forumLastPostTd, td.forumLastPostTd2').swap('td.forumThreadTd, td.forumThreadTd2');

Первый класс заменялся на первый класс в swap, а второй на второй.

P.S.: Помогите разобраться с этим вопросом. С Ув. Дмитрий. :victory:

NikolasGrad 30.10.2012 10:54

Как-то так
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"  type="text/javascript"></script>
<script>
$.fn.swap = function (b) {
  $(this).each(function(i){
    var b1 = $(b)[i],
      a2 = $(this).clone(),
      b2 = $(b1).clone();
    $(this).replaceWith(b2);
    $(b1).replaceWith(a2);
  });
};
$(function() {
  $('button').click(function(){
    $(".odd, .odds").swap($(".even, .evens"));
  });
});
</script>
<div class="odd">odd1</div><br />
<div class="even">even1</div><br />
<div class="odd">odd2</div><br />
<div class="even">even2</div><br />
<div class="odd">odd3</div><br />
<div class="even">even3</div><br />
<button>swap</button><br />
<div class="odds">odds1</div><br />
<div class="evens">evens1</div><br />
<div class="odds">odds2</div><br />
<div class="evens">evens2</div><br />
<div class="odds">odds3</div><br />
<div class="evens">evens3</div>

DS_ 30.10.2012 11:15

Спасибое большое! Всё "почти" правильно.

Могу я как-то с Вами связаться? Долго расписывать, но там появляется небольшая загвоздка..


Часовой пояс GMT +3, время: 03:23.