我目前正在尝试使用以下 jQuery 选择器禁用链接:
$("a[href$=/sites/abcd/sectors]").removeAttr("href");
问题是有时页面上的 href 可能并不总是小写。发生这种情况时,选择器不再匹配。
有谁知道如何解决这个问题?我可以更改一次行为以忽略大小写吗?
我目前正在尝试使用以下 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”。它不区分大小写。
$("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");