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?

È stato utile?

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.

Rick Strahl: utilizzo di jQuery per la ricerca di contenuti e creazione di filtri di selezione personalizzati

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");

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top