Pergunta

Atualmente estou tentando desativar um link usando o seguinte seletor jQuery:

$("a[href$=/sites/abcd/sectors]").removeAttr("href");

O problema é que às vezes a href nem sempre pode ser menor caso na página. Quando isso acontece, o selector de partidas não mais.

Alguém sabe como contornar isso? Posso mudar o comportamento desta vez para ignorar caso?

Foi útil?

Solução

Eu corri para isso mesmo. Troquei a lógica um pouco para me permitir compará-lo sem caso. Ela exige um pouco mais de trabalho, mas pelo menos ele funciona.

$('a').each(function(i,n) {
    var href = $(n).attr("href");
    href = href.toLowerCase();
    if (href.endsWith('/sites/abcd/sectors'))
        $(n).removeAttr('href');
});

Você tem que descobrir sua própria lógica endsWith.

Outras dicas

jQuery foi construído para ser estendido. Você pode corrigi-lo ou adicionar seu próprio tipo de seletor de maiúsculas e minúsculas.

Rick Strahl: Selector Usando jQuery para procurar conteúdo e criação de filtros personalizados

Você pode usar a função "é" em jQuery. Não é sensível a maiúsculas.

   $("a").each(function() {
     if ($(this).is("a[href$=/sites/abcd/sectors]")) {
       $(this).removeAttr('href');
     }
   })

Em primeiro lugar este é não é válido expressão, uma vez que contém \,

Se você quiser usar qualquer um dos meta-caracteres (como !"#$%&'()*+,./:;<=>?@[\]^``{|}~) como

a parte literal de um nome, você deve escapar da personagem com duas barras invertidas:. \\

Src: http://api.jquery.com/category/selectors/

para que você deve escapar da / para \\/

para que a sua expressão será $("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top