Come si usa jQuery per ignorare il caso durante la selezione?
-
03-07-2019 - |
Domanda
Attualmente sto provando a disabilitare un collegamento usando il seguente selettore jQuery:
$("a[href$=/sites/abcd/sectors]").removeAttr("href");
Il problema è che a volte l'href potrebbe non essere sempre minuscolo nella pagina. Quando ciò accade, il selettore non corrisponde più.
Qualcuno sa come aggirare questo? Posso modificare questo comportamento una volta per ignorare il caso?
Soluzione
Mi sono imbattuto in questo me stesso. Ho cambiato un po 'la logica per permettermi di confrontarla senza caso. Richiede un po 'più di lavoro, ma almeno funziona.
$('a').each(function(i,n) {
var href = $(n).attr("href");
href = href.toLowerCase();
if (href.endsWith('/sites/abcd/sectors'))
$(n).removeAttr('href');
});
Dovresti capire la tua endsWith
logica.
Altri suggerimenti
jQuery è stato creato per essere esteso. Puoi correggerlo o aggiungere il tuo tipo di selettore senza distinzione tra maiuscole e minuscole.
Puoi usare la funzione " è " in jQuery. Non fa distinzione tra maiuscole e minuscole.
$("a").each(function() {
if ($(this).is("a[href$=/sites/abcd/sectors]")) {
$(this).removeAttr('href');
}
})
Innanzitutto si tratta dell'espressione NON VALIDO poiché contiene \
,
Se si desidera utilizzare uno dei meta-caratteri (come !"#$%&'()*+,./:;<=>?@[\]^``{|}~
) come
una parte letterale di un nome, devi sfuggire al personaggio con due barre rovesciate: \\
.
Src: http://api.jquery.com/category/selectors/
quindi è necessario uscire da /
a \\/
quindi la tua espressione sarà $("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");