Considérant quelque chose comme ça;
<div class="wrapper">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Comment pourrais-je, en utilisant jQuery (ou JS simple, s'il est plus court - mais j'en doute) le nombre de div avec la classe "item"? Dans cet exemple, la fonction doit renvoyer 5, car il y a 5 divs avec la classe d'élément.
Merci!
Vous pouvez utiliser la propriété jquery .length
var numItems = $('.item').length;
Pour de meilleures performances, vous devez utiliser:
var numItems = $('div.item').length;
Puisqu'il cherchera seulement les éléments div
dans DOM
et sera rapide.
Suggestion: utiliser size()
au lieu de length
signifie une étape supplémentaire dans le traitement car SIZE()
utilise la propriété length
dans la définition de la fonction et renvoie le résultat.
Vous pouvez utiliser la propriété jQuery.children.
var numItems = $('.wrapper').children('div').length;
pour plus d'informations, consultez http://api.jquery.com/
Je viens de créer cette fonction js en utilisant la fonction de taille jQuery http://api.jquery.com/size/
function classCount(name){
alert($('.'+name).size())
}
Il signale le nombre de fois où le nom de la classe apparaît dans le document.
Et pour la plaine js répondre si quelqu'un pourrait être intéressé;
var count = document.getElementsByClassName("item");
À votre santé.
Référence: https://www.w3schools.com/jsref/met_document_getelementsbyclassname.asp
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
.test {
background: #ff4040;
color: #fff;
display: block;
font-size: 15px;
}
</style>
</head>
<body>
<div class="test"> one </div>
<div class="test"> two </div>
<div class="test"> three </div>
<div class="test"> four </div>
<div class="test"> five </div>
<div class="test"> six </div>
<div class="test"> seven </div>
<div class="test"> eight </div>
<div class="test"> nine </div>
<div class="test"> ten </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//get total length by class
var numItems = $('.test').length;
//get last three count
var numItems3=numItems-3;
var i = 0;
$('.test').each(function(){
i++;
if(i>numItems3)
{
$(this).attr("class","");
}
})
});
</script>
</body>
</html>