Pregunta

Actualmente estoy intentando deshabilitar un enlace usando el siguiente selector de jQuery:

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

El problema es que a veces el href no siempre aparece en minúscula en la página. Cuando esto sucede, el selector ya no coincide.

¿Alguien sabe cómo solucionar esto? ¿Puedo cambiar el comportamiento esta vez para ignorar el caso?

¿Fue útil?

Solución

Me encontré con esto yo mismo. Cambié un poco la lógica para permitirme compararla sin mayúsculas y minúsculas. Requiere un poco más de trabajo, pero al menos funciona.

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

Tendrías que descubrir tu propia endsWith lógica.

Otros consejos

jQuery fue construido para ser extendido. Puede corregirlo o agregar su propio tipo de selector sin distinción entre mayúsculas y minúsculas.

Rick Strahl: Uso de jQuery para buscar contenido y crear filtros selectores personalizados

Puede usar la función " es " en jQuery. No distingue entre mayúsculas y minúsculas.

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

Primero, esta es la expresión NO VÁLIDA ya que contiene \,

Si desea utilizar cualquiera de los metacaracteres (como !"#$%&'()*+,./:;<=>?@[\]^``{|}~) como

una parte literal de un nombre, debe escapar del carácter con dos barras invertidas: \\.

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

por lo que debe escapar de / a \\/

para que su expresión sea $("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top