Подтвердить что ты не робот

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?

4b9b3361

Ответ 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(); 
}