В основном я пытаюсь показать скрытые div и ссылки, но с некоторыми проблемами. Функциональность требуется выглядит следующим образом:jQuery show/hide rule
- На странице загрузки, Div ID «дополнительные-языки» скрыта
- Пользователь может нажать на ссылку «Selected Дополнительные Языки», который будет показывать DIV «Необходимые дополнительные-Языки»
- в момент нажатия на эту ссылку, ссылка будет получить скрытые
- Пользователь может выбрать, чтобы скрыть DIV «дополнительные-Языки», нажав на «скрыть»
- в момент нажатия на эту ссылку, ссылка «Выбранные дополнительные языки» снова появится
Вот что я сделал до сих пор:
пометок:
<div class="row">
<label for="native_language">Select</label>
<select name="native_language" id="native_language">
<option value="">Any</option>
<option value="1">English</option>
</select>
<a class="show-additional-link" href="#">Select Additional Languages</a>
</div>
<div id="additional-languages" style="display: none;">
<a class="hide-additional-link" href="#">[hide]</a>
<div class="row">
<!-- additional language checkboxes -->
</div>
</div>
JS:
$('.show-additional-link').click(function(){
$(this).parent().next().slideDown();
$(this).hide();
return false;
});
Первая часть работает для меня, но я изо всех сил на получение второй части для работы, т. е. функциональность для «hide-дополнительная-link». Я пробовал:
$('.hide-additional-link').click(function(){
$(this).parent().slideUp();
$(this).parent().prev('.show-additional-link').show();
return false;
});
DIV скрыт, но показ 'show-extra-link' не отображается.
отсортирован. Я не знал об этой функции «find()»! Приветствия. – GSTAR
Почему это не работает: '$ (this) .parent(). Prev ('. Row> .show-дополнительная-link'). Show();' – GSTAR
Потому что не может быть предыдущего элемента sibling который является потомком чего-то другого, поэтому '.prev ('. row> .show-дополнительная-link')' * не может * вернуть что-либо. Селектор, который он принимает, является фильтром. Если я скажу '.prev ('. Foo')', то он вернет предыдущий родственный только *, если * имеет класс '.foo'. Надеюсь, это понятно. – karim79