2010-01-24 9 views
9

Ho un elemento DOM con class = 'tag'.utilizza event.target per ottenere il valore della classe?

Voglio controllare se il valore della classe è tag e avvisare un messaggio se è vero.

ho scritto:

$("#thread").each(function(event) { 
     if(event.target.class == 'tag') alert('yes'); 
    }); 

ma non ha funzionato. puoi ottenere l'id con event.target.id ma non la classe con questo codice? quali sono tutti i valori che puoi avere dopo event.target?

risposta

14

In un primo momento, il lavoro event argomento solo per gestori di eventi, e si utilizza il metodo $.each.

Non penso davvero che tu voglia/bisogno di usare il metodo $.each, dal momento che stai usando un selettore #id, e l'id dovrebbe essere univoco.

Per verificare se un elemento contiene una classe specifica è possibile utilizzare il metodo hasClass:

if ($("#thread").hasClass('tag')) { 
    //... 
} 

anche se si dispone di un elemento DOM, per arrivare è attributo class, si dovrebbe accedere con className invece class, questo perché è un classfuturo parola riservata in JavaScript, la stessa cosa accade con altri attributi come for, dovrebbe essere letta come htmlFor ...

+3

dove posso trovare tutti gli attributi da utilizzare con event.target? – ajsie

+0

dice che event.target non è definito? – ajsie

1

si utilizza jqu ery ogni metodo in modo errato. prende due argomenti, nessuno dei due è un evento (che risponderebbe alla proprietà target). dal docs:

$.each([52, 97], function(index, value) { 
    alert(index + ': ' + value); 
}); 

veda la risposta di CMS per il corretto modo di controllare se gli elementi hanno un determinato nome di classe.

0

Ecco qui.

$("div").each(function (index, domEle) { 
    if (domEle.hasClass("tag")) { 
     console.log('yes'); 
    } else { 
     console.log('no'); 
    } 
}); 
+0

C'è modo di calcolare l'ora se qualcosa non ha una classe? L'opposto di questo? – user982853

23
if($(event.target).hasClass("tag")) 
{ 
    alert("yes"); 
} 

Questo funziona bene.

+0

sì sì ... =) – Roylee

+2

La risposta accettata risponde all'esempio specifico, ma questa risposta risponde alla domanda – RasTheDestroyer

+0

Questa dovrebbe essere la risposta accettata. – respectTheCode

0

Basta utilizzare all'interno della condizione:

!domEle.hasClass("tag") 
Problemi correlati