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

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

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

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

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

Ответ 1

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

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

Вам нужно будет найти свою собственную логику endsWith.

Ответ 3

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

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

Ответ 4

Сначала это выражение NOT VALID, так как оно содержит \,

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

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

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

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

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