jquery
2009-06-29 13 views 2 likes 
2

Ich habe ein asp.net-Steuerelement in einer Masterpage, also dachte ich, der folgende Selektor würde mir die ausgewählte Option für meine Dropdown-Liste, aber es ist in Ordnung.JQuery Selector Frage

$("#input[id$='ddlTags'] option:selected") 

Kann jemand etwas Licht abwerfen?

Danke.

Antwort

1

Manchmal mit Master-Seiten oder Elemente in einem Repeater, wird die tatsächliche Client-ID der Steuerelemente etwas heftig gemangelt. Sie können jedoch die Client-ID in Ihrem JavaScript an den Client senden. Ich gehe davon aus, dass Ihre Kontrolle ddlTags heißt. :)

$('#<%= ddlTags.ClientID %> option:selected') 

Das gibt Ihnen ein jQuery-Objekt zurück, das alle ausgewählten Optionstags enthält. Da Sie jedoch ein ddl verwenden, gehe ich davon aus, dass es sich um eine einzelne Auswahl handelt. Wenn alles, was Sie wollen, der Wert der Auswahl ist, können Sie ein bisschen einfacher werden.

$('#<%= ddlTags.ClientID %>').val() 

Das gibt Ihnen den Wert der ausgewählten Elemente innerhalb dieses Elements.

Die <% = ist Abkürzung für "echo dieses Stück zum Client beim Rendern". Es ist ein sehr praktisches Stück in Verbindung mit jQuery.

Wirklich, Sie möchten einen ID-basierten Selektor wie dies verwenden über etwas wie Eingabe [ID = <% = ddlTags.ClientID%>], weil dann jQuery Browser-native Funktionen verwenden kann, um die Auswahl und es ' Ich werde ein gutes Stück schneller laufen.

6

Ihr Problem ist, dass die Zeichenfolge für ein Element sieht mit der ID von beiden "Input" und "ddlTags"

Versuchen Sie, es zu

$("input#ddlTags option:selected") 

oder auch nur

$("#ddlTags option:selected") 

Weitere Einzelheiten zum Auswählen nach ID finden Sie unter http://docs.jquery.com/Selectors/id

edit:

da Sie sie brauchen Mangeln, um zu überleben, versucht

$("input[id$=ddlTags] option:selected") 

, die das gleiche wie das Original ist, mit der Ausnahme, dass es aussieht jetzt „input“ Tags anstelle von Tags mit der ID „Eingang“

0

# steht für ID, also fragen Sie jetzt nach Elementen mit ID = "input [id $ = 'ddlTags'].

1

$ (# [id $ = 'ddlTags'] Option: ausgewählt)

scheint funktioniert zu haben.

+0

ja, aber ist immer noch nicht der beste Weg – cobbal

+0

Was ist, wenn Sie versuchen $ ("# ddlTags"). Val()? – Draco

+0

Das wird nicht funktionieren, weil ASP.NET IDs beim Rendern mangelt. –

Verwandte Themen