Как использовать jQuery, чтобы игнорировать регистр при выборе?
-
03-07-2019 - |
Вопрос
В настоящее время я пытаюсь отключить ссылку с помощью следующего селектора 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");