在选择时如何使用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");