'hasClass'和'is'之间的区别?另外,替代返回Jquery元素呢?

Tho*_*eng 1 html javascript jquery filter

可能重复:
jQuery .hasClass()vs .is()

HTML代码:

<div class="results">
    <div class="table">
        <form class="tr" action="#" method="post">
            <div class="td">
                <input class="datepicker" type="text">
            </div>
            <div class="td">
                <input class="datepicker" type="text">
            </div>
            <div class="td">
                <input type="text">
            </div>
        </form>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS代码:

$('.results').find('input:text').each(function(){
    var element = $(this);
    var b = element.hasClass('.datepicker');
    var c = element.is('.datepicker');
}
Run Code Online (Sandbox Code Playgroud)

我的问题:

'is'和'hasClass'应该在找到包含类"datepicker"的元素时返回true,对吗?

不知何故,事实并非如此.'hasClass'返回false,'is'返回true.

此外,我一直在寻找一个解决方案来做一些链接jquery调用.但'hasClass'和'is'都只返回一个布尔值.是否有一个返回$(Jquery)元素的JQuery函数,所以我可以做这样的事情?我已经尝试了"过滤"功能,但似乎无法正常工作.

element.SomeFunctionToDigUpAnElementWithClass('datepicker').DoSomeCoolStuff();
Run Code Online (Sandbox Code Playgroud)

================================================== ==============

Pri*_*orn 8

hasClass当然,没有点,因为它是一个类名.is另一方面任何选择器.

element.hasClass('datepicker');
Run Code Online (Sandbox Code Playgroud)


小智 5

hasClass()更具体,更快捷的操作.is()允许您选择更宽的范围,例如您可以这样做is(':checked')

http://jsperf.com/hasclass-vs-is-so