JQuery next метод
Есть следующий кусок верстки:
<ul id="inside_gallery2" style="left: 0px;"> <li> <a class="current" rel="/public/files/images/1349.jpg" href="/anonses/view/efjf.html"> text1</a> </li> <li> <a rel="/public/files/products/putin.jpg" href="http://www.rian.ru/trend/medvedev_finland_20072010/"> text2</a> </li> <li> <a rel="/public/files/images/1478.jpg" href="/anonses/view/sdfsdddddd.html">text3</a> </li> <li> <a rel="/public/files/images/1467.jpg" href="/anonses/view/32.html"> text4></a> </li> </ul> Как видите здесь первый тег "а" имеет класс current, задача такая, по клику на определенном элементе, присвоить следующему элементу "а" класс current, а у того "а" корорый относился к классу current его убрать. Т.е. что бы после работы скрипта код имел следующий вид: <ul id="inside_gallery2" style="left: 0px;"> <li> <a rel="/public/files/images/1349.jpg" href="/anonses/view/efjf.html"> text1</a> </li> <li> <a class="current" rel="/public/files/products/putin.jpg" href="http://www.rian.ru/trend/medvedev_finland_20072010/"> text2</a> </li> <li> <a rel="/public/files/images/1478.jpg" href="/anonses/view/sdfsdddddd.html">text3</a> </li> <li> <a rel="/public/files/images/1467.jpg" href="/anonses/view/32.html"> text4></a> </li> </ul> Это нужно чтобы считать атрибут rel с элемента который имеет класс "current" и поменять картинку. Пробовал таким образом: Код:
$("#someid").click(function(){ |
$('#inside_gallery2 li:has(a.current)').next().find('a').addClass("current").parent().prev().find('a').removeClass('current');
|
нет, prev убирать не нужно, т.к. нужно не только добавить к следующему элементу "а" класс current, но и убрать его у предыдущего. Сейчас выложу более простой пример который работает как положено, с таким же алгоритмом. Минуту...
|
<li class="third-item" rel="/public/files/products/putin.jpg">list item 3</li> <li rel="/public/files/images/1349.jpg">list item 1</li> <li rel="/public/files/products/putin.jpg">list item 2</li> <li rel="/public/files/images/1478.jpg">list item 4</li> <li rel="">list item 5</li> и
$("#some").click(function(){
$('li.third-item').next().css('background-color', 'red');
$('li.third-item').next().addClass("third-item");
$('li.third-item').prev().removeClass("third-item");
$('li.third-item').prev().css('background-color', 'white');
var relpict = $('li.third-item').attr("rel");
res = "http://misha/phpThumb/phpThumb.php?w=213&h=131&zc=1&src=" + relpict;
//alert(rel);
$("#img123").attr({ src: res });
//$('#img123').attr("src") = rel;
}
)
Этот тестовый пример работаен как положено. |
mixail123, я поправил пост, посмотрите.
|
Спасибо огромное exec, то что нужно +
|
Если можно прокоментируйте этот код, я опишу как я его понимаю, я вы поправьте меня, если я не прав
$('#inside_gallery2 li:has(a.current)').next().find('a').addClass("cur rent").parent().prev().find('a').removeClass('curr ent'); ищется элемент li содержащий a.current, потом методом find ищется следующий элемент "а" и добовляется ему класс current, потом наверное, возвращает родителя <a> насколько я понимаю <li>, передвигается на один элемент назад ищет тег <а> и удаляет класс current у него |
Цитата:
Цитата:
|
Цитата:
Логика подсказывает, что не будет тот код работать. |
| Часовой пояс GMT +3, время: 13:36. |