jQuery подсчет элементов по классам - каков наилучший способ реализовать это?


373

Я пытаюсь подсчитать все элементы на текущей странице с одним и тем же классом, а затем я собираюсь использовать его для добавления к имени для формы ввода. По сути, я позволяю пользователям нажимать на значок, <span>а затем добавляя еще один для большего количества элементов того же типа. Но я не могу придумать способ подсчитать все это просто с помощью jQuery / JavaScript.

Я собирался назвать этот элемент как-то так name="whatever(total+1)": если у кого-то есть простой способ сделать это, я был бы чрезвычайно благодарен, поскольку JavaScript не совсем мой родной язык.


3
первый человек, которого я увидел, получил его, и я не знал, что это простая $ ('. classname'). длина, чтобы его получить. Если бы у меня было больше, я бы дал. Не думал попробовать это так. Я устанавливал переменные совсем немного и такие простые вещи, как добавление документов и т. Д. Вау, я чувствую себя довольно глупо, теперь мне следовало бы поискать команду .length (), чтобы увидеть, что она говорит ... спасибо всем кстати.
133794m3r

26
+1 За вопрос типа Йода
jbnunn

6
@jbnunn что такое Йода?
Шаси Кант

Ответы:


691

Должно быть что-то вроде:

// Gets the number of elements with class yourClass
var numItems = $('.yourclass').length




Как примечание, часто полезно проверять свойство длины, прежде чем связывать много вызовов функций в объекте jQuery, чтобы убедиться, что у нас действительно есть какая-то работа. См. ниже:

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');
    });
}

4
Просто хотел поделиться, что это также работает с подсчетом дочерних элементов, так как это то, что я делал, когда приземлился здесь: children('div.classname').length
brs14ku

23

Получить количество элементов, относящихся к одному и тому же классу, очень просто.

<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>


9

для подсчета:

$('.yourClass').length;

должно работать нормально.

хранение в переменной так же просто, как:

var count = $('.yourClass').length;



2

пытаться

document.getElementsByClassName('myclass').length

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.