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

时间:2015-10-07 13:27:25

标签: javascript jquery html

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

是的我正在引用jQuery库。

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

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

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

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

});

我的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>

错误我进入控制台

  

未捕获的TypeError:$(...)。find(...)。hasClass(...)。show is not a a   功能

2 个答案:

答案 0 :(得分:10)

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

您可以使用

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

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

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

答案 1 :(得分:6)

hasClass()会返回truefalse。您想要选择相应的元素:

 $("#nav div." + current_selection).show();