jQuery cuenta elementos por clase: ¿cuál es la mejor manera de implementar esto?
Lo que intento hacer es contar todos los elementos de la página actual con la misma clase y luego los usaré para agregarlos a un nombre para un formulario de entrada. Básicamente, estoy permitiendo a los usuarios hacer clic en un <span>
y luego, al hacerlo, agregar otro para obtener más elementos del mismo tipo. Pero no se me ocurre una manera de contarlos todos simplemente con jQuery/JavaScript.
Luego iba a nombrar el elemento como algo así name="whatever(total+1)"
. Si alguien tiene una forma sencilla de hacerlo, estaría muy agradecido ya que JavaScript no es exactamente mi lengua nativa.
Debería ser algo como:
// Gets the number of elements with class yourClass
var numItems = $('.yourclass').length
Como nota al margen, a menudo es beneficioso verificar la propiedad de longitud antes de encadenar muchas llamadas a funciones en un objeto jQuery, para asegurarnos de que realmente tenemos algo de trabajo que realizar. Vea abajo:
var $items = $('.myclass');
// Ensure we have at least one element in $items before setting up animations
// and other resource intensive tasks.
if($items.length)
{
$items.animate(/* */)
// It might also be appropriate to check that we have 2 or more
// elements returned by the filter-call before animating this subset of
// items.
.filter(':odd')
.animate(/* */)
.end()
.promise()
.then(function () {
$items.addClass('all-done');
});
}
Contar el número de elementos que hacen referencia a una misma clase es tan sencillo como esto
<html>
<head>
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
alert( $(".red").length );
});
</script>
</head>
<body>
<p class="red">Test</p>
<p class="red">Test</p>
<p class="red anotherclass">Test</p>
<p class="red">Test</p>
<p class="red">Test</p>
<p class="red anotherclass">Test</p>
</body>
</html>
var count = $('.' + myclassname).length;
HTML:
<div>
<img src='' class='class' />
<img src='' class='class' />
<img src='' class='class' />
</div>
JavaScript:
var numItems = $('.class').length;
alert(numItems);
Demostración de violín para div solo interior
para contar:
$('.yourClass').length;
debería funcionar bien.
almacenar en una variable es tan fácil como:
var count = $('.yourClass').length;