Вход

Просмотр полной версии : Помогите разобраться с .next()


skreets
09.07.2012, 12:17
Здравствуйте!
Помогите разобраться в такой проблеме, есть верстка:

<div class="partnersBox">
<img src="/images/partner/bb_expo.png" />
<a href="javascript:;" class="aboutPart"><span>Барбекю Экспо</span></a>
<a href="javascript:;">Благодарность</a>
<div class="aboutPartText">
текст
</div>

</div>


и к нему условие:

$(".aboutPart").click(function () {
$(this).next(".aboutPartText").slideToggle("slow");


И оно не работает потому что за ссылкой с классом "aboutPart" идет еще одна ссылка без класса. Если убрать ссылку без класса то все начинает работать. Но вторая ссылка нужна и я решил этот вопрос таким способом:

$(".aboutPart").click(function () {
$(this).next().next().slideToggle("slow");

Тоесть выбираю второй элемент. Я знаю что это не првильное решение проблеммы!
Обьясните пожалуйста в чем моя ошибка почему по клику на ссылку не происходит действия с элементом класс у которого "aboutPartText"?

vadim5june
09.07.2012, 12:31
next выбирает именно следующий элемент
http://api.jquery.com/next/
Вы правильно сделали
cmd показал как можно с помощью nextAll сделать

cmd
09.07.2012, 12:40
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<div class="partnersBox">
<a href="javascript:;" class="aboutPart"><span>Барбекю Экспо</span></a>
<a href="javascript:;">Благодарность</a>
<div class="aboutPartText">
текст
</div>
</div>

<script>
$(".aboutPart").click(function () {
$(this).nextAll(".aboutPartText").css("background", "yellow");
});
</script>

</body>
</html>

skreets
09.07.2012, 12:44
я не могу понять почему .next() игнорирует селектор .aboutPartText?

vadim5june
09.07.2012, 12:48
я не могу понять почему .next() игнорирует селектор .aboutPartText?
ну он же не сосед там же написано по ссылке что выбирает только следующий nextSibling если совпадает селектор-а у Вас не следующий а через элемент

Description: Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.

skreets
09.07.2012, 12:51
Спасобо большое! Тепрь все понятно :)

Deff
09.07.2012, 13:31
skreets, Обычно так универсальней, работает и при вложенности

$(this).parent(".partnersBox").find(".aboutPartText:first").slideToggle("slow")