30
<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' 的元素?

4

6 回答 6

51

尝试类似:

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

showOne(1);​

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

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

于 2012-05-16T05:17:37.093 回答
7
$('div.hide').hide(300,function() {  // first hide all `.hide`
   $('#'+ id +'.hide').show(); // then show the element with id `#1`
});

注意:不要只使用数字 ID。不允许。读这个

于 2012-05-16T05:13:54.300 回答
5

您必须通过 css 类名访问元素。要做到这一点,请使用. 操作员

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

它将隐藏所有 div。

现在按 id 显示一个 div;

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

或者您也可以使用

$('.hide').eq(0).show();

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

于 2014-03-31T08:35:49.503 回答
0

我几乎为解决方案如此简单而感到羞耻,而且我在写完问题后就发现了它。只是:

$('.hide').hide();
于 2012-05-16T05:14:34.980 回答
0

尝试:

function showOne(id) { 
    $('.hide').hide();
    $('#'+id).show(); 
} 
于 2012-05-16T05:25:38.703 回答
-1

您可以使用隐藏类为隐藏的所有组件 $('.hide').hide();

于 2012-05-16T05:15:20.007 回答