2010-02-19 9 views
54

meiner Frage beginnt, ist dies:html-Element finden, die ID mit

ich HTML-Code habe in mehreren Seiten, auf jeden von ihnen mir einige Daten eine jqGrid (jquery Raster) für die Anzeige verwendet. Ich wusste, dass auf jeder dieser Seiten das Element, das das JQgrid enthält, als "LIST_xxx" bezeichnet wird. Jetzt muss ich ein Javascript machen, das dieses Element "LIST_XXXX" auf jeder Seite nimmt und einige Sachen macht. Wie könnte ich für ein Element von ID zu suchen, sondern nur seinen Anfangsteil zu wissen (der ID, wie ich bereits erwähnt):

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

Ich hoffe, dass ich mich klar gemacht. Vielen Dank.

Antwort

110

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

Versuchen sollte es funktionieren

+0

Viel besser Layout auf dieser Referenz als die Jquery-Dokumentation. –

+0

Das funktioniert gut, danke ... Ich habe es verwendet, um eine ID zu finden, die mit einem bestimmten Wert endet, wie if ($ ('div [id $ = "' + val + '"]'). Length> 0) etwas ausführen; – raphie

+0

gut, Es funktioniert gut für die oben genannten einfachen IDs der Kontrollen. Wie man es für Szenarien wie Kontrolle mit solchen IDs "txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city" und so weiter macht, und ich möchte die Anzahl aller solcher Elemente mit IDs wie "txt _ * _ city" " –

7

Geben Sie diesem Element einen allgemeinen Klassennamen oder ein anderes Attribut, das Sie abfragen können.

+0

Hallo, danke für deine Antwort, das Problem mit deinem Vorschlag ist, dass es mehrere Tabellen mit JQgrid geben könnte, also könnte es sein: "LIST_customer", "LIST_carrier" ... und so weiter. Und ich muss beide nur auf dem ursprünglichen ID-Teil auswählen: "LIST_". – lidermin

+0

Ich verstehe, aber sie alle zu einer List-Klasse zu machen, scheint für mich eine leichter lesbare und beschreibende Herangehensweise zu sein. Zu jedem seinen eigenen, konnten Sie immer die Starts mit Selektor in jQuery verwenden, wie von anderen Antworten gezeigt. –

+0

@lidermin Was Yuriy sagt sollte funktionieren. Warum fügen Sie Ihren Steuerelementen wie "list" keine Klasse hinzu, da Sie list_ als Präfix haben? Wenn Sie also diese Klasse auswählen, werden alle diese Steuerelemente abgerufen. Dies wird der effizienteste Weg sein, dies zu tun. –

19

Sie benötigen die attribute starts with selector, wie diese verwenden:

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

gut, Es funktioniert gut für die oben genannten einfachen IDs der Kontrollen. Wie man es für Szenarien wie Kontrolle mit solchen IDs "txt_0_city", "txt_1_city", "txt_2_city", "txt_3_city" und so weiter macht, und ich möchte die Anzahl aller solcher Elemente mit IDs wie "txt _ * _ city" " –

+0

Hallo @Rajiv, willkommen zu stackoverflow. Ich habe auf die andere Kopie Ihres Kommentars geantwortet. –

Verwandte Themen