İd ile başlayan html öğesini bulun


89

sorum şu:

Birden çok sayfada HTML kodum var, her birinde bazı verileri görüntülemek için bir JQgrid (jquery ızgarası) kullandım. Bu sayfaların her birinde JQgrid'i tutan öğenin "LIST_xxx" olarak adlandırıldığını biliyordum. Şimdi her sayfada bu "LIST_XXXX" öğesini alan ve bazı şeyler yapan bir javascript yapmam gerekiyor. Bir öğeyi kimliğe göre nasıl arayabilirim, ancak yalnızca ilk bölümünü bilerek (daha önce bahsettiğim gibi kimliğin):

$('#list_[XXXX]')... --> The part surrounded by [] is variable on each page, i want to discriminate that.

Umarım kendimi netleştirmişimdir. Teşekkürler.

Yanıtlar:


173

Deneyin

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

İşe yaramalı


Bu referans üzerinde jquery belgelerine göre çok daha iyi düzen.
Yuriy Faktorovich

Bu iyi çalışıyor, teşekkürler ... if ($ ('div [id $ = "' + val + '"]'). Length> 0) bir şeyi yürütmek gibi belirli bir değerle biten bir id bulmak için kullandım;
raphie

iyi, yukarıdaki basit kontrol kimlikleri için iyi çalışıyor. "Txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city" gibi kimliklerle kontrollerim var gibi senaryolar için nasıl çalıştırılır ve "txt _ * _ city gibi kimliklere sahip tüm bu tür öğelerin sayısını istiyorum "
Rajiv Bhardwaj

@Rajiv html üzerinde kontrole sahipseniz, bu öğelerin her birine "şehir" gibi bir sınıf eklemeniz iyi olur. Daha sonra bunları kolayca sayabilirsiniz.
Glen Little

@Rajiv html'yi iyileştiremiyorsanız, api.jquery.com/multiple-attribute-selector'a bakın - seçicileri birleştirebilirsiniz. Örneğin, $ ("span [id ^ = 'txt _'] [id $ = '_ city']")
Glen Little

22

Seçici ile başlar özniteliğini şu şekilde kullanmanız gerekir :

$('[id^=list_]').whatever()

iyi, yukarıdaki basit kontrol kimlikleri için iyi çalışıyor. "Txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city" gibi kimliklerle kontrollerim var gibi senaryolar için nasıl çalıştırılır ve "txt _ * _ city gibi kimliklere sahip tüm bu tür öğelerin sayısını istiyorum "
Rajiv Bhardwaj

Merhaba @Rajiv, stackoverflow'a hoş geldiniz. Yorumunuzun diğer kopyasına yanıt verdim.
Glen Little

8

Bu öğeye ortak bir sınıf adı veya sorgulayabileceğiniz başka bir özellik verin.


Merhaba, cevabınız için teşekkürler, önerinizle ilgili sorun, JQgrid'i tutan birden fazla tablo olabileceğidir, bu nedenle: "LIST_customer", "LIST_carrier" ... vb. Ve ikisini de sadece ilk kimlik kısmına göre seçmem gerekiyor: "LIST_".
lidermin

1
Anlıyorum, ancak hepsini bir List sınıfı yapmak bana daha okunaklı ve açıklayıcı bir yaklaşım gibi görünüyor. Her biri için, diğer yanıtlarda gösterildiği gibi, jquery'de her zaman seçiciyle başlangıçları kullanabilirsiniz.
Yuriy Faktorovich

@lidermin Yuriy ne diyor çalışmalı. Önekiniz list_ olduğundan neden kontrollerinize "liste" gibi bir sınıf eklemiyorsunuz? Bu nedenle, bu sınıfı seçtiğinizde, bu kontrollerin her birini alacaktır. Bunu yapmanın en verimli yolu bu olacaktır.
Josh Mein

Yuriy'in cevabı işe yarayacak. Aynı sınıfı (örneğin, "ListsINeedToFind") tüm "LIST_XXXX" öğelerinize ekleyebilir ve ardından bunları kullanarak arayabilirsiniz $('.ListsINeedToFind').
Annabelle

Bazen aynı sınıfa ancak farklı kimliklere sahip birden fazla öğeye sahip olmak gerekir.
Vincent


1

Belirli bir id / karakter ile biten bir öğe elde etmek için

find('[id$=someid]')

Belirli bir id / karakter ile başlayan bir element elde etmek için

find('[id*=anotherid]')

Belirli bir id / karakter ile eşleşen bir öğe elde etmek için

find('[id^=id]')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.