jQuery menghitung elemen berdasarkan kelas - apa cara terbaik untuk mengimplementasikan ini?


373

Apa yang saya coba lakukan adalah menghitung semua elemen di halaman saat ini dengan kelas yang sama dan kemudian saya akan menggunakannya untuk ditambahkan ke nama untuk formulir input. Pada dasarnya saya mengizinkan pengguna untuk mengklik <span>dan kemudian dengan menambahkan satu lagi untuk lebih dari jenis barang yang sama. Tapi saya tidak bisa memikirkan cara untuk menghitung semua ini hanya dengan jQuery / JavaScript.

Saya akan menamai item tersebut dengan sesuatu seperti name="whatever(total+1)", jika ada yang punya cara sederhana untuk melakukan ini, saya akan sangat berterima kasih karena JavaScript bukan bahasa ibu saya.


3
orang pertama yang saya lihat mendapatkannya dan saya tidak tahu itu adalah $ ('. classname') yang sederhana. Panjang untuk mendapatkannya. Jika saya memiliki lebih banyak untuk diberikan, saya akan. Tidak terpikir untuk mencobanya seperti itu. Saya telah menetapkan variabel sedikit dan hal-hal sederhana seperti menambahkan dokumen dll. btw.
133794m3r

26
+1 Untuk mengajukan pertanyaan seperti Yoda
jbnunn

6
@ jbnunn apa itu Yoda?
shasi kanth

Jawaban:


691

Seharusnya sesuatu seperti:

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




Sebagai catatan tambahan, seringkali bermanfaat untuk memeriksa properti panjang sebelum merantai banyak fungsi panggilan pada objek jQuery, untuk memastikan bahwa kami benar-benar memiliki beberapa pekerjaan yang harus dilakukan. Lihat di bawah:

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
Hanya ingin berbagi bahwa ini juga berfungsi dengan menghitung anak-anak dari suatu unsur, karena itulah yang saya lakukan ketika saya mendarat di sini: children('div.classname').length
brs14ku

23

Mendapatkan hitungan jumlah elemen yang merujuk ke kelas yang sama sesederhana ini

<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

untuk menghitung:

$('.yourClass').length;

harus bekerja dengan baik.

menyimpan dalam variabel semudah:

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



2

mencoba

document.getElementsByClassName('myclass').length

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.