2010-04-05 10 views
6

Voglio filtrare in base a un attributo chiamato "livello".Come si usa jQuery filter() su un attributo che non è una classe o id

Dove ho scritto - qualcosa qui - non so cosa fare per fare riferimento all'attributo del livello. Se fosse un attributo id, farei #idname se fosse una classe che vorrei fare .className.

Non sono sicuro di cosa fare per selezionare l'attributo di livello.

$ (". MyClass"). Filter (- qualcosa qui per fare riferimento all'attributo di livello -). Remove();

risposta

13

filter("[level='2']")

11

Non c'è bisogno di filter, basta usare la sintassi attribute filter, in questo caso, il Has Attribute Selector:

$(".myClass[level]").remove(); 

Questo dovrebbe rimuovere tutti .myClass elementi che hanno un non vuoto level, naturalmente, è possibile ad esempio corrispondere a level in base a uno dei numerosi operatori disponibili (vedere docs), ad esempio startsWith:

$(".myClass[level^=foo]").remove(); // remove the ones that start with 'foo' 

contains:

$(".myClass[level*=haa]").remove(); // remove the ones that contain 'haa' 

ecc

1

Se avete bisogno di fare qualcosa di complicato, è possibile scrivere una filter function che restituisce vero per gli elementi che dovrebbero essere nel set filtrato.

+2

Mentre questo non è l'approccio migliore in questo caso, per completezza, questo potrebbe essere fatto come segue: '.filter (function() {return this.level == 'something';});' (where' questo è l'attuale elemento DOM) – Matt

+0

Concordato - Ho dato +1 ai buoni consigli sottostanti. Grazie per il commento. –

Problemi correlati