Как использовать 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
.
Ответ 2
jQuery был создан для расширения. Вы можете исправить это или добавить свой собственный тип селектора, нечувствительного к регистру.
Rick Strahl: использование jQuery для поиска содержимого и создания настраиваемых фильтров селектора
Ответ 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");