jQuery`is`不是一个函数

时间:2012-01-12 11:50:14

标签: jquery

我有以下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显然是一种功能。

任何建议都非常感谢。

2 个答案:

答案 0 :(得分:9)

prop()之前调用的is()方法将href属性作为字符串返回。

字符串没有is()方法。

尝试;

$('#menu li a').filter('[href="' + url + '"]').parent().addClass('active');

虽然您可以将它组合成一个选择器;

$('#menu li a[href="' + url + '"]').parent().addClass('active');

请注意,is()会返回truefalse如果匹配元素的任何与选择器匹配;因此,如果您想使用is();

,可以使用以下表格
$('#menu li a').each(function () {
    if ($(this).is('[href="#' + url +'"]')) {
        $(this).parent().addClass('active');
    }
});

请参阅attribute equals selector

答案 1 :(得分:2)

prop()如果设置了属性或其值,即truefalse或字符串 - 并且布尔值上没有is() - 方法,则返回字符串。