HTML code:
<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>
JS代码:
$('.results').find('input:text').each(function(){
var element = $(this);
var b = element.hasClass('.datepicker');
var c = element.is('.datepicker');
}
我的问题:
'is'和'hasClass'应该在找到包含类“datepicker”的元素时都返回true,对吗?
不知何故,事实并非如此。 'hasClass'返回false,'is'返回true。
另外,我一直在寻找一个解决方案来做一些链接jquery调用。但'hasClass'和'is'都只返回一个布尔值。是否有一个返回$(Jquery)元素的JQuery函数,所以我可以做这样的事情?我已经尝试了“过滤”功能,但似乎无效。
element.SomeFunctionToDigUpAnElementWithClass('datepicker').DoSomeCoolStuff();
=============================================== =================
答案 0 :(得分:8)
hasClass
没有圆点,因为它是一个类名。 is
另一方面是任何选择器。
element.hasClass('datepicker');
答案 1 :(得分:5)
hasClass()
更具体,操作更快捷。 is()允许您选择更宽的范围,例如您可以is(':checked')
答案 2 :(得分:1)
要保持链接,您需要修改选择器:
$('.results').find('input:text.datepicker').doSomething();
如果您需要将特定参数传递给每个输入元素的下一个函数,请使用或each
:
$('.results').find('input:text.datepicker').each(function(){
doSomething();
});
如果您需要为没有datepicker类集的输入执行某些操作,请使用:not
选择器:
$('.results').find('input:text:not(.datepicker)').doSomething();
甚至没有find
:
$('.results input:text.datepicker').doSomething();