2012-11-21 14 views
5

Próbuję użyć JQuery, aby uzyskać rodzaj kontroli, a poniżej jest kod, którego używam.Uzyskiwanie typu formantu za pomocą Javascript i JQuery

$('#selCity').attr('type') 

gdzie selCity należy do typu select. Kiedy próbuję powyższego kodu, zwraca się jako niezdefiniowany, ale kiedy używam alternatywnego kodu z Javascriptem, zwraca poprawny typ.

Proszę spojrzeć na ten skrzypce go zrozumieć jasno: http://jsfiddle.net/Ye8e9/

Could rada ktoś w jaki sposób mogę acheive to poprawnie przy użyciu jQuery? Czy to jest problem z JQuery, czy też popełniam błąd?

Odpowiedz

8

Zastosowanie

$('#selCity').prop('type') 

jako jQuery 1.6, .attr() zwraca niezdefiniowane atrybuty, które nie zostały określone. Ponadto, .attr() nie powinno być używane na zwykłych obiektach, tablicach, oknach lub dokumencie. Aby pobrać i zmienić właściwości DOM, użyj metody .prop().

Reference

DEMO

+0

Czy "prop" działa dla wszystkich typów kontroli? –

+0

@AbishekRSrikaanth tak – Sibu

+0

@AbishekRSrikaanth sprawdź mój odnośnik – Sibu

4

jeśli masz na myśli rodzaj znacznika, zastosowanie tego

$("#selCity").get(0).tagName 

See your demo here

+0

Rab Nawaz, Czy istnieje ogólne podejście, które można wykonać, aby dostać się do wszystkich elementów sterujących. Jeśli wypróbuję powyższy kod dla pola tekstowego, otrzymam wartość "INPUT" iz tym wynikiem nie jestem pewien, czy formant jest polem ukrytym, czy polem tekstowym lub hasłem. –

0

Zastosowanie NODENAME aby uzyskać 'typ Tag'. ".type" odnosi się do atrybutu "type", którego wyboru nie ma.

document.getElementById('selCity').nodeName 
+0

Nie jestem pewien lub nie rozumiem, co masz na myśli przez atrybut "typ", nie istnieje dla wybranej kontroli. W jaki sposób dane wyjściowe javascript, gdy następujący kod jest wykonywany? document.getElementById ('selCity'). Type –

0

otrzymujesz niezdefiniowany, ponieważ nie ma wpisać w atrybut select.

próbować ten jeden

$('#selCity')[0].tagName; 
Powiązane problemy