2011-01-31 16 views

Odpowiedz

75
if(!$(el).is("select")) { 
    // the input field is not a select 
} 
+0

który działa, dziękuję! – Alex

+7

Pamiętaj, aby zaznaczyć odpowiedź! (Nie, żeby Darin potrzebował więcej punktów!) –

+0

Dlaczego oryginał nie był przedmiotem zainteresowania? Wygląda na to, że powinno to być na pierwszy rzut oka ... Twoja odpowiedź wydaje się po prostu trochę poruszać negacją ... Widzę odpowiedź w odpowiedziach innych ludzi. Być może jest to dobry pomysł, aby edytować go w tym, ponieważ jest to akceptowana odpowiedź, więc naprawdę powinna być jedyną osobą, na którą ludzie muszą patrzeć (IMHO). :) – Chris

3

$(el).not("select") daje tablicę. Tablica zawsze podaje true w wyrażeniach logicznych. Ale po zastosowaniu nie, ta tablica elementów nie będzie zawierać zaznaczeń. Zobacz pracę example.

+0

, ale potrzebuję tylko wartości true/false, a nie tablicy. Jak mogę to zdobyć? – Alex

2

Sposób .not() zwraca nowy obiekt jQuery ze wszystkim z oryginalnego obiektu, który nie pasuje do selektora.
Nie można po prostu użyć tego w oświadczeniu if w ten sposób.

Zamiast tego należy użyć metody .is, która sprawdza, czy element pasuje do selektora, i zwraca wartość boolowską.

if (!$(el).is('select')) 
1

co daje <select> tagi klasę:

$(el+":not('.select')")

^_^

+0

To nie zadziała, chyba że 'el' jest łańcuchem, którego prawdopodobnie nie ma. Poza tym chce mieć wartość boolowską. – SLaks

+1

@SLaks: He? Jesteś pewny? –

+0

gosh - to wystarczy, abyś był gejem –

1
if($(el).selectedIndex) 

Jeśli to ma właściwość selectedIndex, to <SELECT>

+0

Dla firefox to było liczone jako fałszywe, jeśli nic nie zostało wybrane. – Royalty

2
if ($(el)[0].nodeName != 'select') 
Powiązane problemy