Как использовать jQuery, чтобы игнорировать регистр при выборе?

StackOverflow https://stackoverflow.com/questions/619621

Вопрос

В настоящее время я пытаюсь отключить ссылку с помощью следующего селектора jQuery:

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

Проблема в том, что иногда href не всегда может быть строчным на странице. Когда это происходит, селектор больше не соответствует.

Кто-нибудь знает, как это обойти? Могу ли я изменить это поведение один раз, чтобы игнорировать регистр?

Это было полезно?

Решение

Я столкнулся с этим сам. Я немного переключил логику, чтобы позволить мне сравнить ее без случая. Это требует немного больше работы, но, по крайней мере, это работает.

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

Вы должны выяснить свою собственную endsWith логику.

Другие советы

jQuery был создан для расширения. Вы можете исправить это или добавить свой собственный тип нечувствительного к регистру селектора.

Рик Штрал: использование jQuery для поиска контента и создания пользовательских фильтров селектора

Вы можете использовать функцию " is " в jQuery. Это не чувствительно к регистру.

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

Во-первых, это NOT VALID выражение, так как оно содержит \,

Если вы хотите использовать любой из метасимволов (например, !"#$%&'()*+,./:;<=>?@[\]^``{|}~) в качестве

буквальная часть имени, вы должны экранировать символ двумя обратными слешами: \\.

Источник: http://api.jquery.com/category/selectors/

поэтому вы должны выйти из / в \\/

поэтому ваше выражение будет $("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top