Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2012, 08:33
DS_ DS_ вне форума
Новичок на форуме
Отправить личное сообщение для DS_ Посмотреть профиль Найти все сообщения от DS_
 
Регистрация: 30.10.2012
Сообщений: 5

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

Мне нужно было переставить на странице, два элемента местами. Воспользовался этим скриптом:
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++) {...};

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

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

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

Последний раз редактировалось DS_, 30.10.2012 в 08:39.
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2012, 09:54
Аватар для NikolasGrad
Аспирант
Отправить личное сообщение для NikolasGrad Посмотреть профиль Найти все сообщения от NikolasGrad
 
Регистрация: 12.04.2012
Сообщений: 49

Как-то так
<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>

Последний раз редактировалось NikolasGrad, 30.10.2012 в 10:01.
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2012, 10:15
DS_ DS_ вне форума
Новичок на форуме
Отправить личное сообщение для DS_ Посмотреть профиль Найти все сообщения от DS_
 
Регистрация: 30.10.2012
Сообщений: 5

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

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы с отображением элементов на странице mozyr Javascript под браузер 17 13.01.2012 01:34
Полная загрузка всех элементов на странице Serpanok jQuery 3 10.11.2011 19:29
Обход всех элементов на странице. lexnext1 Элементы интерфейса 0 08.11.2011 11:58
Создание элементов на странице. 0931454574 AJAX и COMET 2 14.03.2011 20:55
перестановка элементов Sub-zerro jQuery 3 25.08.2010 18:02