我有以下HTML菜单:
<ul>
<li><a href="index.html">Index Page</a></li>
<li><a href="#some-page">Some Page</a></li>
</ul>
我要说var url = "some-page";
$('#menu li a').prop('href')
.is('#' + url )
.parrent()
.addClass('active');
我一直收到错误消息.is is not a function
。为什么? .is
显然是一种功能。
任何建议都非常感谢。
答案 0 :(得分:9)
在prop()
之前调用的is()
方法将href
属性作为字符串返回。
字符串没有is()
方法。
尝试;
$('#menu li a').filter('[href="' + url + '"]').parent().addClass('active');
虽然您可以将它组合成一个选择器;
$('#menu li a[href="' + url + '"]').parent().addClass('active');
请注意,is()
会返回true
或false
如果匹配元素的任何与选择器匹配;因此,如果您想使用is()
;
$('#menu li a').each(function () {
if ($(this).is('[href="#' + url +'"]')) {
$(this).parent().addClass('active');
}
});
答案 1 :(得分:2)
prop()如果设置了属性或其值,即true
或false
或字符串 - 并且布尔值上没有is()
- 方法,则返回字符串。