我无法检查length
内部$.each()
功能
假设我有2 elements
这样,
<div class="demo">
<!-- 30 -- with different class>
<input type="text" name="demo" class="hell"/>
<input type="text" name="demo2" class="seeHere"/>
</div>
$('.demo').find('input').each(function(){
var $this = $(this);
if($this.find('.seeHere').length>0){ // throws error length of undifined
// do something
}else{
// do something
}
});
如果,它会抛出未分解的错误长度第一次它将chache
<input type="text" name="demo"
class="hell"/>
有没有办法在if(el.length>0 || return false) like el.push(value || 'No value')
请提前帮助我
答案 0 :(得分:2)
使用jQuery的hasClass
$('.demo').find('input').each(function(){
var $this = $(this);
if($this.hasClass('seeHere')){
// do something
}else{
// do something
}
});
在jQuery的每个函数中,$(this)类似于索引处的选择器的元素
我的意思是
假设你有类似的东西
<div id="#a" class="abc">
<div id="#b" class="abc">
<div id="#c" class="abc">
所以当你像
一样循环“.abc”时$(".abc").each(function() {
//Here $(this) resembles to $("#a") at first iteration
// $("#b") at second iteration
// $("#c") at third iteration
});
答案 1 :(得分:1)
您不需要迭代任何内容 - 使用所需的选择器和.length属性来获取该类的元素数量。
$(document).ready(function(){
var len = $('.seeHere').length;
console.log(len);
//displays 2 in the console since there are two divs with the desired class
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="a" class="hell">
<div id="b" class="seeHere">
<div id="c" class="something">
<div id="d" class="seeHere">
&#13;
如果您确实希望somethimg发生在具有该类的每个元素上 - 请在选择器上使用.each()方法:
$(document).ready(function(){
$('.seeHere').each(function(){
//do stuff
});
});