如何以小写形式获取jQuery attr选择器

时间:2018-02-21 11:02:35

标签: javascript jquery

如何以小写形式制作jQuery attr选择器,下面是我的代码引发错误(因为href.toLowerCase),正确的方法是什么,TIA。

 var url = window.location.href; 
     $("ul.menu-content li a[href.toLowerCase()='" + url.toLowerCase() + "']).each(function () {
     code....
     });

2 个答案:

答案 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正在获取不区分大小写的标记