亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
Analisis masalah
Penyelesaian: Delegasi Acara dan Dom Traversal
Meringkaskan
Rumah hujung hadapan web html tutorial Penyelesaian kepada kuantiti keranjang belanja JavaScript meningkat dan mengurangkan butang yang hanya berkuat kuasa pada elemen pertama

Penyelesaian kepada kuantiti keranjang belanja JavaScript meningkat dan mengurangkan butang yang hanya berkuat kuasa pada elemen pertama

Oct 15, 2025 pm 10:39 PM

Penyelesaian kepada kuantiti keranjang belanja JavaScript meningkat dan mengurangkan butang yang hanya berkuatkuasa pada elemen pertama

Artikel ini bertujuan untuk menyelesaikan masalah yang apabila JavaScript melaksanakan fungsi meningkatkan atau mengurangkan kuantiti keranjang belanja, ia hanya berkuatkuasa pada elemen pertama di halaman. Dengan menganalisis punca kesilapan biasa dan menyediakan penyelesaian pengoptimuman berdasarkan delegasi acara dan Dom Traversal, kami membantu pemaju melaksanakan fungsi kawalan kuantiti keranjang belanja yang mudah digunakan, mudah dan cekap. Pada masa yang sama, kepentingan menulis struktur HTML yang berkesan ditekankan.

Apabila membangunkan halaman membeli -belah atau halaman butiran produk, sering kali perlu melaksanakan fungsi peningkatan atau penurunan kuantiti. Kesalahan yang sama ialah apabila terdapat banyak produk di halaman, kod JavaScript hanya berfungsi untuk produk pertama. Ini biasanya kerana kod hanya memilih elemen pertama dan tidak mengendalikan pelbagai elemen dengan betul. Artikel ini akan meneroka masalah ini dan menyediakan penyelesaian yang lebih cekap dan boleh diguna semula.

Analisis masalah

Kod awal cuba menggunakan QuerySelectorall untuk mendapatkan semua butang, tetapi masih mempunyai masalah. Sebab utama adalah:

  1. Masalah pemilih: Menggunakan nama kelas bernombor (seperti .pqt-plus1) menyebabkan kod hanya memilih elemen pertama.
  2. Skop Variabel: Pembolehubah bebas dicipta untuk setiap elemen, mengakibatkan kebolehgunaan semula kod yang lemah dan kesukaran dalam penyelenggaraan.

Penyelesaian: Delegasi Acara dan Dom Traversal

Penyelesaian yang lebih elegan ialah menggunakan delegasi acara dan Dom Traversal. Pendekatan ini meningkatkan prestasi dan mengekalkan kod dengan mengelakkan keperluan untuk menambah pendengar acara untuk setiap butang.

Pengoptimuman Struktur HTML:

Pertama, kita perlu mengoptimumkan struktur HTML untuk memanipulasi. Keluarkan akhiran angka dari nama kelas dan gunakan nama kelas generik. Pada masa yang sama, gunakan atribut data untuk menyimpan nilai peningkatan dan penurunan. Dan masalah yang div dalam struktur HTML tidak dapat ditempatkan di tag span telah diperbetulkan.

 <div class="d-flex lign-items-center pls-moins">
  <span class="Count-Number Float-Right">
    <butang jenis="butang" class="btn-sm kiri dec btn btn-outline-secondary pqt-minus" data-inc="-1"> 
      <i class="Feather -Minus"> </i> - 
    </butang>
    <span class="cart-button">
      <span class="tambah"> 0 </span>
    </span>
    <butang jenis="butang" class="BTN-SM RIGHT INC BTN BTN-OUTLINE-SECONDARY PQT-PLUS" data-inc="1"> 
      <i class="Feather-Plus"> </i>   
    </butang>
  </span>
</div>

<div class="d-flex lign-items-center pls-moins">
  <span class="Count-Number Float-Right">
    <butang jenis="butang" class="btn-sm kiri dec btn btn-outline-secondary pqt-minus" data-inc="-1"> 
      <i class="Feather -Minus"> </i> - 
    </butang>
    <span class="cart-button">
      <span class="tambah"> 0 </span>
    </span>
    <butang jenis="butang" class="BTN-SM RIGHT INC BTN BTN-OUTLINE-SECONDARY PQT-PLUS" data-inc="1"> 
      <i class="Feather-Plus"> </i>   
    </butang>
  </span>
</div>

<div class="d-flex lign-items-center pls-moins">
  <span class="Count-Number Float-Right">
    <butang jenis="butang" class="btn-sm kiri dec btn btn-outline-secondary pqt-minus" data-inc="-1"> 
      <i class="Feather -Minus"> </i> - 
    </butang>
    <span class="cart-button">
      <span class="tambah"> 0 </span>
    </span>
    <butang jenis="butang" class="BTN-SM RIGHT INC BTN BTN-OUTLINE-SECONDARY PQT-PLUS" data-inc="1"> 
      <i class="Feather-Plus"> </i>   
    </butang>
  </span>
</div>

<div class="d-flex lign-items-center pls-moins">
  <span class="Count-Number Float-Right">
    <butang jenis="butang" class="btn-sm kiri dec btn btn-outline-secondary pqt-minus" data-inc="-1"> 
      <i class="Feather -Minus"> </i> - 
    </butang>
    <span class="cart-button">
      <span class="tambah"> 0 </span>
    </span>
    <butang jenis="butang" class="BTN-SM RIGHT INC BTN BTN-OUTLINE-SECONDARY PQT-PLUS" data-inc="1"> 
      <i class="Feather-Plus"> </i>   
    </butang>
  </span>
</div>

Kod JavaScript:

 document.QuerySelectorAll (". btn-sm"). foreach (btn => {
  btn.addeventListener ('klik', e => {
    biarkan total = e.target.closest ('.
    total.TextContent = Math.Max ??(0, ParseInt (total.TextContent, 10) ParseInt (e.currentTarget.dataset.inc, 10));
  });
});

Penjelasan kod:

  1. document.QuerySelectorAll (". btn-sm"). foreach (btn => {...}); : Pilih semua butang dengan nama kelas .BTN-SM dan tambahkan pendengar acara untuk setiap butang.
  2. E.Target.Closest ('. Paling dekat ('.
  3. .QuerySelector ('. Ditambah') : Di antara unsur-unsur .pls-moins, cari elemen dengan nama kelas. Tambah yang memaparkan kuantiti.
  4. ParseInt (total.TextContent, 10) : Tukar jumlah kandungan teks kepada integer. 10 mewakili perpuluhan.
  5. ParseInt (e.currentTarget.dataset.inc, 10) : Dapatkan nilai atribut data-INC pada butang yang diklik dan tukarnya ke integer. E.CurrentTarget menunjuk ke elemen (iaitu butang) yang mana pendengar acara terikat.
  6. Math.max (0, ...) : Pastikan kuantiti tidak kurang daripada 0.

Meringkaskan

Dengan menggunakan Delegasi Acara dan Dom Traversal, kita boleh menulis lebih banyak kod JavaScript yang ringkas dan mudah untuk mengendalikan pelbagai elemen. Pendekatan ini bukan sahaja menjadikan kod lebih cekap, tetapi juga menjadikannya lebih mudah untuk diperluaskan dan diubah suai. Ingat, menulis struktur HTML yang sah adalah kunci untuk melaksanakan penyelesaian ini. Elakkan menggunakan nama kelas bernombor dan gunakan nama kelas generik dan atribut data untuk menyimpan maklumat yang relevan. Akhirnya, pastikan struktur HTML anda sah.

Atas ialah kandungan terperinci Penyelesaian kepada kuantiti keranjang belanja JavaScript meningkat dan mengurangkan butang yang hanya berkuat kuasa pada elemen pertama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Petua CSS: Tepat menyembunyikan kandungan teks tertentu tanpa menjejaskan elemen ibu bapa Petua CSS: Tepat menyembunyikan kandungan teks tertentu tanpa menjejaskan elemen ibu bapa Sep 16, 2025 pm 10:54 PM

Tutorial ini memperincikan cara menggunakan CSS untuk menyembunyikan kandungan teks tertentu dengan tepat di halaman HTML untuk mengelakkan masalah seluruh elemen induk yang tersembunyi kerana pemilih yang tidak betul. Dengan menambah kelas CSS eksklusif ke elemen pembalut teks sasaran dan menggunakan paparan: tiada; Atribut, pemaju boleh mencapai kawalan halus elemen halaman, memastikan bahawa hanya bahagian yang diperlukan tersembunyi, dengan itu mengoptimumkan susun atur halaman dan pengalaman pengguna.

Tangkap peristiwa mousedown dengan elemen induk yang mengandungi iframes silang domain: prinsip dan batasan Tangkap peristiwa mousedown dengan elemen induk yang mengandungi iframes silang domain: prinsip dan batasan Sep 20, 2025 pm 11:00 PM

Artikel ini meneroka cabaran menangkap peristiwa mousedown pada div ibu bapa yang mengandungi iframes domain. Masalah teras ialah dasar keselamatan pelayar (dasar asal usul) menghalang acara langsung DOM mendengar kandungan iframe silang domain. Jenis penangkapan acara ini tidak dapat dicapai melainkan nama domain sumber iframe dikawal dan CORS dikonfigurasi. Artikel ini akan menerangkan mekanisme keselamatan secara terperinci dan batasan mereka mengenai interaksi peristiwa dan memberikan alternatif yang mungkin.

Melaksanakan Stacking Unsur Vertikal dalam Layout Bootstrap Flexbox: Dari sisi ke Lapisan Melaksanakan Stacking Unsur Vertikal dalam Layout Bootstrap Flexbox: Dari sisi ke Lapisan Sep 21, 2025 pm 10:42 PM

Apabila menggunakan bootstrap untuk susun atur laman web, pemaju sering menghadapi masalah elemen yang dipaparkan bersebelahan dan bukannya disusun secara vertikal secara lalai, terutamanya apabila bekas induk menggunakan susun atur Flexbox. Artikel ini akan meneroka cabaran susun atur yang sama dengan mendalam dan memberikan penyelesaian: dengan menyesuaikan atribut flex-arah dari bekas flex ke lajur, menggunakan kelas alat Flex-Column Bootstrap untuk mencapai susunan menegak yang betul dari tag H1 dan blok kandungan seperti bentuk, memastikan struktur halaman memenuhi jangkaan.

Bagaimana membuat teks membungkus imej dalam html? Bagaimana membuat teks membungkus imej dalam html? Sep 21, 2025 am 04:02 AM

USECSSSFLOOPROPERTYTOWRAPTEXTAROUNIMAGE: FloatLeftFortExtOntHeright, FloatRightFortExtOnTheLeft, AddMarginforspacing, andClearFloatStOpreventLayOuteSues.

Cara menetapkan atribut lang dalam html Cara menetapkan atribut lang dalam html Sep 21, 2025 am 02:34 AM

Setthelangattributeinthehtmltagtospecifypagelanguage, mis., Forenglish;

Fungsi luaran JavaScript Panggilan Kesukaran Analisis: Lokasi skrip dan penamaan spesifikasi Fungsi luaran JavaScript Panggilan Kesukaran Analisis: Lokasi skrip dan penamaan spesifikasi Sep 20, 2025 pm 10:09 PM

Artikel ini meneroka dua masalah biasa apabila memanggil fungsi JavaScript luaran dalam HTML: masa pemuatan skrip yang tidak betul menyebabkan unsur-unsur DOM menjadi tidak siap, dan penamaan fungsi mungkin bertentangan dengan peristiwa terbina dalam pelayar atau kata kunci. Artikel ini menyediakan penyelesaian terperinci, termasuk lokasi rujukan skrip tweaking dan mengikuti spesifikasi penamaan fungsi yang baik untuk memastikan kod JavaScript dilaksanakan dengan betul.

Bagaimana untuk menambah tooltip pada hover dalam html? Bagaimana untuk menambah tooltip pada hover dalam html? Sep 18, 2025 am 01:16 AM

USetetetitLeatTrBITrBITpetoLToolCUStOM-STyLElyLEtoMSORCUStOM.1.addtitle = "Text" toanyeLementFordefaLtTipips.2.forStyLEdToolTips, wrapTheelememementinAcontainer, uss.toolTipand.tool

Bagaimana untuk membuat hiperpautan ke alamat e -mel di HTML? Bagaimana untuk membuat hiperpautan ke alamat e -mel di HTML? Sep 16, 2025 am 02:24 AM

Usemailto: inhreftocreateemailinks.startwithforbasiclinks, tambah? Subjek = dan & body = forpre-filledContent, andincludemultipleaddressorcc =, bcc = foradvancedOptions.

See all articles