如何检查每个功能的长度

时间:2017-01-06 13:22:31

标签: javascript jquery node.js

我无法检查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')

内返回false

请提前帮助我

2 个答案:

答案 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属性来获取该类的元素数量。

&#13;
&#13;
$(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;
&#13;
&#13;

如果您确实希望somethimg发生在具有该类的每个元素上 - 请在选择器上使用.each()方法:

   $(document).ready(function(){
    $('.seeHere').each(function(){
      //do stuff
      });
    });