如何以小写形式制作jQuery attr选择器,下面是我的代码引发错误(因为href.toLowerCase),正确的方法是什么,TIA。
var url = window.location.href;
$("ul.menu-content li a[href.toLowerCase()='" + url.toLowerCase() + "']).each(function () {
code....
});
答案 0 :(得分:1)
在尖端浏览器上(请参阅caniuse,目前是Chrome和Firefox,而不是Edge或IE),您可以使用当前最新草案规范中的case insensitive equality modifier i
:
$("ul.menu-content li a[href='" + url + "'i]")
console.log($('div[data-test="insensitive"i]').text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-test="iNsEnSiTiVe">Test !</div>
答案 1 :(得分:1)
您必须在事后过滤,不能在选择器中执行此操作:
var url = window.location.href.toLowerCase();
$("ul.menu-content li a[href]").filter(function() {
return this.href.toLowerCase() == url;
}).each(function() {
// ...
});
请注意,我使用的是href
属性,而不是属性,因为您要与window.location.href
进行比较,并且可能想要测试已解决的 URL,而不是href
属性中可能相对的URL。
注意:如果您在(比方说)2019或更高版本中阅读此内容,或者您只需要支持Chrome和Firefox,请参阅Zenoo's answer:CSS正在获取不区分大小写的标记