2010-08-12 18 views

cevap

11

Yukarıdaki harflerle div ile başlayan bir id özelliğine sahip tüm div'leri çekecek starts with selector

$("div[id^='div']") 

kullanabilirsiniz.

jsFiddle example that makes all divs with id div... invisible.


Burada bir numara takip div eşleştirmek istiyorum ama başka bir şey tarafından takip değil div eğer hileli durumda ne var. Yani div1 eşleşir, ancak divx olmaz.

Bu durumda filter() işlevini bir işlevle kullanırız. Bir eşleşme istediğimiz zaman işlev, doğru olmadıkça yanlıştır. Bu durumda id yılında,

$("div").filter(function() { 
    return $(this).attr("id").match(/^div[\d]+$/) 
}) 

attr() belirtilen özelliğin değerini döndürür: Bu (bir regex bir rakam veya daha basit [\d] temsil etmek [0-9] kullanabilirsiniz) için match() ve regex harika.

jsFiddle example that makes all div followed by number disappear, but not div followed by other things.

+1

Peter mükemmel cevabı en tamamen doğru, ancak * En iyi * yapılacak şey "mydivs" sınıfını ekleyin ya da her ne:

Elemanları ayırıcı olarak boşluk kullanarak, birden fazla sınıfın olabilir (bu HTML'de) tüm bu div'lere, bunları sınıflara göre seçebilirsiniz. Bu yüzden sınıflar var, grup gibi öğeler. :) –

7

Bunu kullanabilir (Ben olsa test etmedim):

jQuery("div[id^='div']") 

Bu id "div" ile başlayan olan tüm div unsurları alacak. Eğer "div" içeren bir id, o zaman bu kullanabilirsiniz olan tüm div unsurları isteseydim

: div1, DIV2 gibi kimlikleri kullanarak

jQuery("div[id*='div']") 
2

, DIV3 kötü bir uygulamadır. Sınıflarınıza "black-bold-12px" adını vermek ve daha sonra bu stilleri bu sınıfa atamak gibi bir şey. Anlambilimdeki noktayı özlüyor.

Bunu yapmanın doğru yolu, hepsi için bir sınıf kullanıyor olabilir.

<div class="something usethis">...</div> 
<div class="usethis something_else">...</div> 
<div class="usethis">...</div> 
<div class="something anotherclass usethis" id="someId">...</div> 

<script> 
    $(".usethis").html("New contents for all of them!"); 
</script> 
+2

Diğer cevaplar soruya cevap veriyor, ancak bu RIGHT cevabı –

+2

Eğer bir dizi mesajınız varsa, 'post-1',' post-23' gibi kimliklere sahip iseniz, numaranın benzersiz bir evrensel mesaj tanımlayıcısı olduğu yerlerde. gayet meşru ve semantik olarak bilgilendirici görünüyor ... Ama evet, mümkün olduğunda iyi düşünülmüş sınıflarla çalışmak kesinlikle daha kolay.---- Ancak, semantik olarak iyi oluşturulmuş sayfalardan bahsetmişken, dış Javascript,