Jquery hide() все элементы с определенным классом, кроме одного
<div class='hide'>A</div>
<div class='hide'>B</div>
<div class='hide' id='1'>C</div>
У меня есть функция, называемая showOne, которая должна скрывать все элементы, а затем показывать один с id = '1'.
function showOne(id) {
// Hide all elements with class = 'hide'
$('#'+id).show();
}
Как скрыть все элементы с помощью класса = 'hide' в jquery?
Ответы
Ответ 1
Попробуйте что-то вроде:
function showOne(id) {
$('.hide').not('#' + id).hide();
}
showOne(1);
Демо: http://jsfiddle.net/aymansafadi/kReZn/
Я согласен с @TheSystemRestart, хотя: "ПРИМЕЧАНИЕ: НЕ ИСПОЛЬЗУЙТЕ ТОЛЬКО ЧИСЛЕННЫЙ ИДЕНТИФИКАТОР".
Ответ 2
$('div.hide').hide(300,function() { // first hide all `.hide`
$('#'+ id +'.hide').show(); // then show the element with id `#1`
});
ПРИМЕЧАНИЕ: НЕ ИСПОЛЬЗУЙТЕ ТОЛЬКО ЧИСЛЕННЫЙ ИДЕНТИФИКАТОР. НЕ РАЗРЕШЕНО. ПРОЧИТАЙТЕ ЭТО
Ответ 3
Вам нужно получить доступ к элементам по имени класса css. Для этого используйте оператор .
$('.hide').hide();
Он скроет все div.
Теперь покажите один div по id;
$('#elemID').show();
Или вы также можете сделать это, используя
$('.hide').eq(0).show();
Покажет первый div, имеющий класс hide.
Ответ 4
Мне почти стыдно, насколько легко было решение, и что я нашел его сразу после написания вопроса. Просто:
$('.hide').hide();
Ответ 5
Скрыть все компоненты с помощью класса можно с помощью . $ ( 'Скрыть') скрыть();.
Ответ 6
Try:
function showOne(id) {
$('.hide').hide();
$('#'+id).show();
}