2010-03-08 4 views
0

Je donne les résultats suivants:JQUERY .each --- détecter si chacun trouve 0

$("span.findme").each(function() { 
    $("<li>").text($(this).text()).appendTo("ul"); 
}); 

Comment puis-je, en utilisant ce qui précède, détecter si chacun trouve 0, si elle est 0 Je veux déclencher une alerte.

Merci

Répondre

2

Enregistrer l'objet jQuery à une variable et interroger la propriété length.

var spans = $("span.findme"); 
if (spans.length == 0) { 
    alert("none found!"); 
} else { 
    spans.each(function() { 
    $("<li>").text($(this).text()).appendTo("ul"); 
    }); 
} 
1

Vous pouvez utiliser le numéro pour convertir le texte à un numéro, puis faire une comparaison numérique à 0. Par exemple:

$(function() { 
    $("span.findme").each(function() { 
     var nValue = Number($(this).text()); 
     if (nValue == 0) { 
      alert('0 found'); 
     } 
     $("<li>").text($(this).text()).appendTo("ul"); 
    }); 

}); 

Donc, si le texte evalues ​​à 0, alors il est sautée. Voici un exemple:

<html> 
<head> 
    <title>test</title> 
    <script type="text/javascript" src="jquery-1.4.2.js"></script> 

    <script type="text/javascript"> 
     $(function() { 
      $("span.findme").each(function() { 
       var nValue = Number($(this).text()); 
      if (nValue == 0) { 
       alert('0 found'); 
      } 
      $("<li>").text($(this).text()).appendTo("ul"); 
      }); 

     }); 
    </script> 

</head> 
<body> 
    <span class="findme">1</span><br /> 
    <span class="findme">12</span><br /> 
    <span class="findme">0</span><br /> 
    <span class="findme">Test</span><br /> 
    <span class="findme">0</span><br /> 
    <span class="findme">0</span><br /> 
    <span class="findme">1a</span><br /> 
    <span class="findme">11</span><br /> 
    <hr /> 
    <ul> 
    </ul> 
</body> 
</html> 
+0

Je viens de relire votre question et j'ai réalisé que je l'ai mal compris. Je pensais que vous cherchiez à trouver des éléments avec la valeur 0 et non le nombre d'éléments trouvés. –