2010-06-27 2 views

risposta

14

È possibile utilizzare .filter(), in questo modo:

$("a").filter(function() { 
    return $(this).text() === "foo"; 
}).doSomething(); 

C'è anche il selettore :contains() se non avete bisogno di una corrispondenza esatta, in questo modo:

$("a:contains('foo')").doSomething(); 

Invece di una corrispondenza esatta, questo funziona se il testo che stai cercando è ovunque nell'elemento.


In alternativa, se si voleva corrispondere esattamente e lo fa spesso, creare un selettore per questo, come questo:

$.expr[":"].textEquals = function(obj, index, meta) { 
    return $(obj).text() === meta[3]; 
} 

allora si potrebbe utilizzare in qualsiasi momento dopo, in questo modo:

$("a:textEquals('foo')").doSomething();