未捕获的TypeError:$(...).find(...).hasClass(...).show不是函数

Mr.*_*yyy 2 html javascript jquery

不知道为什么这不起作用,但我希望第二眼.

是的我正在引用jQuery库.

var $current_selection;
$('.nav-link').hide();

$('a').click(function () {

    current_selection = $(this).attr("class");

    $('#nav').find("div").hasClass(current_selection).show();

});
Run Code Online (Sandbox Code Playgroud)

我的HTML

<a href="#" class="link-one">Nav Option One</a>
<div id="nav">
    <div class="nav-link link-one">
        <p>Test Link One</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

错误我进入控制台

未捕获的TypeError:$(...).find(...).hasClass(...).show不是函数

Tus*_*har 10

hasClass返回布尔值,因此您无法链接hasClass.

您可以使用

$('#nav').find("div." + current_selection).show();
Run Code Online (Sandbox Code Playgroud)

如果current_selection包含多个类,则类将包含空格,并且选择器将无法按预期工作.为了使其工作,所有空间都需要替换..

current_selection = $(this).attr("class").replace(/ /g, '.');
$('#nav').find("div." + current_selection).show();
Run Code Online (Sandbox Code Playgroud)

  • 哇,我应该更好地阅读文档.谢谢. (4认同)

Pau*_*oub 6

hasClass()返回truefalse.您需要实际选择适当的元素:

 $("#nav div." + current_selection).show();
Run Code Online (Sandbox Code Playgroud)