我目前正在尝试使用以下jQuery选择器禁用链接:
$("a[href$=/sites/abcd/sectors]").removeAttr("href");
问题在于,有时href在页面上可能并不总是小写。发生这种情况时,选择器不再匹配。
有谁知道怎么解决这个问题?我可以更改此行为一次以忽略大小写吗?
答案 0 :(得分:14)
我自己遇到了这个问题。我稍微改变了一下逻辑,让我无需比较它。它需要更多的工作,但至少它是有效的。
$('a').each(function(i,n) {
var href = $(n).attr("href");
href = href.toLowerCase();
if (href.endsWith('/sites/abcd/sectors'))
$(n).removeAttr('href');
});
您必须弄清楚自己的endsWith
逻辑。
答案 1 :(得分:5)
jQuery是为了扩展而构建的。您可以更正它或添加您自己的不区分大小写的选择器类型。
Rick Strahl: Using jQuery to search Content and creating custom Selector Filters
答案 2 :(得分:1)
你可以在jQuery中使用函数“is”。它不区分大小写。
$("a").each(function() {
if ($(this).is("a[href$=/sites/abcd/sectors]")) {
$(this).removeAttr('href');
}
})
答案 3 :(得分:1)
首先这是 NOT VALID 表达式,因为它包含\
,
如果您希望将任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^``{|}~
)用作
名称的文字部分,您必须使用两个反斜杠转义角色:\\
。
Src:http://api.jquery.com/category/selectors/
因此您必须将/
转义为\\/
因此您的表达式为$("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");