Jquery hide()具有某个类的所有元素,除了一个

时间:2012-05-16 05:11:30

标签: jquery

<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();
}

如何在jquery中使用class ='hide'隐藏所有元素?

6 个答案:

答案 0 :(得分:46)

尝试类似:

function showOne(id) {
    $('.hide').not('#' + id).hide();
}

showOne(1);​

演示:http://jsfiddle.net/aymansafadi/kReZn/

我同意@TheSystemRestart,“注意:不要只使用数字ID”。

答案 1 :(得分:5)

$('div.hide').hide(300,function() {  // first hide all `.hide`
   $('#'+ id +'.hide').show(); // then show the element with id `#1`
});

注意:请勿使用NUMERIC ID。不允许。 READ THIS

答案 2 :(得分:5)

您必须通过css类名访问元素。为此,请使用运算符

$('.hide').hide();

它会隐藏所有div。

现在按ID显示一个div;

$('#elemID').show();

或者您也可以使用

执行此操作
$('.hide').eq(0).show();

它将显示第一个具有隐藏类的div。

答案 3 :(得分:0)

我对解决方案的简单程度感到羞愧,而且在写完问题后我才发现它。只是:

$('.hide').hide();

答案 4 :(得分:0)

尝试:

function showOne(id) { 
    $('.hide').hide();
    $('#'+id).show(); 
} 

答案 5 :(得分:-1)

您可以使用隐藏所有使用class隐藏的组件     $( '隐藏')隐藏();