Come selezionare un nodo DOM <a href="...">foo</a>
, conoscendo foo
?Posso usare jQuery per selezionare un nodo di testo in base al suo contenuto?
6
A
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();