未捕获类型错误:$(..).find(..). hasclass(..).Show不是一个函数



不知道为什么这不起作用,但我希望有另一双眼睛。

是的,我正在引用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: $(…);(…).hasClass(…)。Show不是一个函数

hasClass返回布尔值,因此不能链接hasClass

可以使用

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

如果current_selection包含多个类,类将包含空格,选择器将不能正常工作。要使其工作,需要将所有空格替换为.

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

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

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

最新更新