2016-04-08 33 views
-1

Bunu yapmak için daha iyi bir şey var mı? Daha az satır var mı?Bunu yapmak için daha iyi bir şey var mı?

$('#hider').click(function(){ 
    $(".name_A").hide(); 
    $(".name_B").hide(); 
    $(".name_C").hide();   
    }); 

Ben bir düğme sadece 50

ben JQuery üzerinde yeniyim ile çok isim, A, B, C, (100 adları) koymak ... ve gizlemek istiyorum. Filtre denedim ama benim için iyi çalışmıyor.

+0

sadece startswith seçiciyi kullanabilirsiniz: $ ('[sınıfını arada

, burada hem yapabileceğini ne^= isim _] ') (gizlemek.); Bu, 'name_' – DinoMyte

+0

@DinoMyte ile başlayan tüm öğeleri gizler. 50'nin geri kalanı, gizli olması gerekmeyen 'name' ile başlamıyorsa. Ayrıca, bu sözleşmenin sadece örneklem için mi yoksa – Spidey

+0

@ Nimesh isimli gerçek sınıf isimleri mi olduğuna bağlıdır: OP, saklamak istediği 50'den bahsetmemişti. Bu yüzden kodda belirttiği şeye göre varsayımına gideceğim: 'name_ [alfabe]' deseniyle sınıfa sahip elemanları gizlemek istedim – DinoMyte

cevap

-1

kullanarak çoklu sınıf isimleri ayırabilirsiniz ,

$('#hider').click(function(){ 
    $(".name_A, .name_B, .name_C").hide(); 
}); 

Ama 100 farklı classnames sahip ve daha sonra bunları tek tek isimlendirerek 50 tane gizleme, doğru programlama nedir? CSS'de, bir öğeye birden çok sınıf adı atayabilirsiniz, umarım doğru şekilde yaparsınız.

Not: İlgili HTML/CSS'nin ayrıntılarını bilmeden bundan daha iyi bir çözüm olup olmadığını bilmiyorum.

jQuery Selectors
W3Schools - jQuery Selectors

+0

Tek tek seçicilerin ilan edilmesini önlemek için seçiciyle başlamayı kullanabilirsiniz. $ ('[class^= name _]'). hide() – DinoMyte

+0

@DinoMyte Bunu paylaştığınız için teşekkürler, bunu kullanmamışsınız. Her neyse, daha fazla ayrıntıyı içeren bağlantıyı ekledim, böylece OP kendi kullanımı için kontrol edebilir ve uygulayabilir. – Spidey

+0

İhtiyacım olan gerçekten basit bir kod, çalışıyor, ama birçok satır var. Yolunuz daha iyi. Çok teşekkür ederim. :) – Riba

0

ben sorunuz için daha cevap daha fazla ayrıntı ihtiyaç konusunda daha fazla yardım için aşağıdaki bağlantıyı başvurabilirsiniz. HTML'niz nasıl görünür? Ne 50 saklamak istiyorsun? İlk 50 mi, son 50 mi?

HTML örneği:

<button id="hide-btn">Hide 50 names</button> 
<ul class='name-list'> 
    <li>Name 1</li> 
    <li>Name 2</li> 
    <li>Name 3</li> 
    ... 
</ul> 

JavaScript örnek:

var $hideFirstBtn = $('#hide-first-btn'), 
     $hideLastBtn = $('#hide-last-btn'), 
     $nameList = $('.name-list'), 
     $nameListLength = $nameList.find('li').length; 

$hideFirstBtn.on('click', function() { 
    for (var i = 0; i < 50; i++) { 
     $nameList.find('li').eq(i).hide(); 
    } 
}); 

$hideLastBtn.on('click', function() { 
    for (var i = 0; i < 51; i++) { 
     $nameList.find('li').eq($nameListLength - i).hide(); 
    } 
}); 
+0

Teşekkürler. .hide() iş daha basit ve kodu basit tutmak istiyorum. Fo ile çalışmak için (var i = 0) vb benim için çalışmıyor ... Ama teşekkürler :) – Riba

+0

için ne demek (var i - 0) 'henüz sizin için çalışmıyor mu? – justinledouxweb

İlgili konular