在选择时如何使用jQuery忽略大小写?

我目前正在尝试使用以下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是为了扩展而构建的。 您可以更正它或添加您自己的不区分大小写的选择器类型。

Rick Strahl:使用jQuery搜索内容并创建自定义选择器filter

你可以在jQuery中使用函数“is”。 它不区分大小写。

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

首先这是非VALID表达式,因为它包含\

如果你想使用任何元字符(例如!"#$%&'()*+,./:;<=>?@[\]^``{|}~ )as

如果是名称的文字部分,则必须使用两个反斜杠转义字符: \\

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

所以你必须逃避/\\/

所以你的表达式将是$("a[href$=\\/sites\\/abcd\\/sectors]").removeAttr("href");