2012-05-16 21 views
24
<div class='hide'>A</div> 
<div class='hide'>B</div> 
<div class='hide' id='1'>C</div> 

Tüm öğeleri gizlemesi ve sonra kimliği '1' olanı göstermesi gereken showOne adlı bir işleve sahibim.Jquery hide() Bir öğenin tümünü bir sınıf

function showOne(id) { 
// Hide all elements with class = 'hide' 
$('#'+id).show(); 
} 

jquery'de class = 'hide' ile tüm öğeleri nasıl gizlerim? NOT

+2

sadece bir not - HTML5 olmadığı sürece numarayla başlayan 'id' olamazsınız – Bongs

cevap

40

gibi bir şey deneyin.

+0

+1 - .not() kullanımı daha iyi bir çözümdür, çünkü şimdi göstermek istediğiniz öğeyi gizlemek ve sonra göstermek zorunda kalmazsınız. "Yanıp sönen" efekti kaçınarak, daha iyi UI deneyim olduğunu düşünüyorum. – alieninlondon

+0

'$ ('. Hide: not (#' + id + ')'). Hide();' esas olarak aynıdır ... – Fr0zenFyr

+4

Sadece bir saniye almak istiyorum ve ne kadar kötü yazılmış bir örnek olduğunu kabul ediyorum. Toplam newbie, sadece sınıf olarak 'gizle' olarak adlandırdığınız için.İnsanların ikisi arasında bir bağlantı olduğunu düşünmelerini sağlayan hide() işlevi. Her yerde bu adlandırma modelini görüyorum ve öğrendiğimde bu örneklerden geçmem için bir acıydı. – Edeph

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

: SADECE SAYISAL kimliğini KULLANMAYIN. İZİN VERİLMEDİ. READ THIS

+1

Sayısal kimlikler html5'te izinlidir - bunları desteklemeyen mevcut bir tarayıcının farkında mısınız? – nnnnnn

0

Neredeyse çözümden ne kadar kolay utandığımdan ve soruyu yazdıktan hemen sonra bulduğumdan neredeyse utanıyorum. Sadece:

$('.hide').hide(); 
+0

Tanıtım jQuery öğreticisini (jQuery'nin web sitesindekilerden biri gibi) okursanız, daha yaygın olan seçicilerin (kimlik, sınıf, etiket adı ve ebeveyn/çocuk ilişkileri aracılığıyla seçilmesi vb.) Seçimini yapabilirsiniz. Aslında CSS seçici sözdizimi ile aynı. Bunu askıya aldığınızda, seçilen elemanlar üzerinde hangi yöntemin (ör. '.hide()') çağrılacağına karar vermek kolay kısımdır. – nnnnnn

+0

Öğeyi id = "1" ile gizleme NOT? Kendi cevabınız tamamen kendi sorunuza cevap vermiyor! – Griknok

0

Sen kullanarak postu olarak sınıfıyla tüm bileşenleri gizleyebilirsiniz. $ ('. Gizle'). Hide();

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

showOne(1);​ 

Demo: http://jsfiddle.net/aymansafadi/kReZn/ olsa @TheSystemRestart katılıyorum

, "NOT: SADECE SAYISAL kimliğini KULLANMAYIN"

0

Dene:

Sen css sınıfı adıyla elemanları erişmek zorunda
function showOne(id) { 
    $('.hide').hide(); 
    $('#'+id).show(); 
} 
3

. Bunu yapmak için kullanın. operator

Tüm div'leri gizler.

Şimdi bir div by id;

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

Ya da O sınıf hide sahip ilk div gösterecektir

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

kullanarak bunu yapabilirsiniz.