Jadual Kandungan
Idea Pelaksanaan Teras
Reka bentuk struktur HTML
Definisi gaya CSS
Pelaksanaan logik JavaScript
Kelebihan dan pertimbangan
Meringkaskan
Rumah hujung hadapan web html tutorial Tutorial dengan cekap melaksanakan penukaran kandungan menu drop-down dinamik menggunakan JavaScript

Tutorial dengan cekap melaksanakan penukaran kandungan menu drop-down dinamik menggunakan JavaScript

Oct 09, 2025 pm 11:30 PM

Tutorial dengan cekap melaksanakan penukaran kandungan menu drop-down dinamik menggunakan JavaScript

Tutorial ini bertujuan untuk membimbing anda tentang cara menggunakan JavaScript dan ringkas HTML/CSS untuk melaksanakan fungsi penukaran menu drop-down dinamik. Apabila pengguna membuat pemilihan dalam menu drop-down utama, kandungan menu sub-drop-down yang sepadan akan dikemas kini dan dipaparkan dalam masa nyata, sambil memastikan bahawa hanya satu sub-menu yang dipaparkan, dengan itu meningkatkan pengalaman pengguna dan pemeliharaan kod.

Dalam aplikasi web moden, ia adalah keperluan umum untuk memaparkan kandungan yang berbeza secara dinamik berdasarkan pilihan pengguna. Sebagai contoh, dalam bentuk, sub-pilihan yang berbeza dipaparkan bergantung pada kategori yang dipilih oleh pengguna. Pendekatan tradisional mungkin untuk mencipta elemen HTML bebas untuk setiap pilihan, dan kemudian mengawal paparan mereka dan bersembunyi melalui JavaScript. Walau bagaimanapun, apabila bilangan pilihan meningkat, pendekatan ini membawa kepada struktur DOM yang berlebihan dan logik JavaScript menjadi kompleks dan sukar untuk dikekalkan. Tutorial ini akan memperkenalkan penyelesaian yang lebih efisien dan elegan untuk mencapai kandungan menu drop-down yang fleksibel yang beralih melalui elemen letak biasa dan pengurusan data dinamik JavaScript.

Idea Pelaksanaan Teras

Idea teras penyelesaian ini adalah: bukannya mewujudkan elemen HTML yang berasingan untuk setiap submenu yang mungkin, hanya buat elemen pemegang letak generik. Apabila pemilihan dalam menu utama berubah, JavaScript akan mengemas kini label dan pilihan elemen pemegang tempat ini secara dinamik berdasarkan nilai yang dipilih, dan mengawal keadaan paparannya. Pendekatan ini sangat memudahkan struktur HTML dan meningkatkan pemeliharaan kod JavaScript.

Reka bentuk struktur HTML

Pertama, kita perlu menentukan menu dropdown utama dan pemegang tempat generik untuk memaparkan kandungan dinamik.

 <able>
  <tr>
    <td>
      <label> ABC: </label>
      <pilih id="abcid">
        <opsyen nilai="" dilumpuhkan terpilih> pilih-
        <opsyen nilai="a"> a 
        <opsyen nilai="b"> b 
        <opsyen nilai="c"> c 
      </opsyen></opsyen></opsyen></opsyen></pilih>
    </td>
  </tr>
  <tr class="nodisplay">
    <td>
      <label> </label>
      <tection>
        <opsyen nilai="" dilumpuhkan terpilih> pilih-
      
    </opsyen></tection>
</td>
  </tr>
</able>

Penerangan Struktur:

  • Menu drop-down utama (#ABCID) : Bertanggungjawab untuk mencetuskan peristiwa penukaran. Nilai = "" Pilihan dilumpuhkan yang dipilih bertindak sebagai prompt lalai untuk mengelakkan pengguna memilihnya.
  • Generik Submenu Generik () : Ini adalah pemegang tempat utama.
    • Ia pada mulanya dilengkapi dengan kelas Nodisplay, yang tersembunyi melalui CSS.
    • Mengandungi elemen
    • Mengandungi elemen kosong secara dalaman untuk pilihan penduduk yang dinamik. Begitu juga, nilai = "" Dilumpuhkan yang dipilih sebagai prompt lalai.

    Definisi gaya CSS

    Untuk mencapai paparan bersembunyi dan dinamik awal, kami memerlukan kelas CSS yang mudah.

     .Nodisplay {
      Paparan: Tiada;
    }

    Penerangan Gaya:

    • Kelas .Nodisplay menetapkan harta paparan elemen kepada tiada, menjadikannya tidak kelihatan pada halaman dan tidak mengambil ruang.

    Pelaksanaan logik JavaScript

    JavaScript adalah teras penukaran dinamik. Ia bertanggungjawab untuk memantau perubahan dalam menu utama dan mengemas kini kandungan submenu berdasarkan perubahan.

     const
      selectabc = document.QuerySelector ('#abcid'), // Dapatkan menu drop-down utama trselect2 = document.queryselector ('tr.nodisplay'), // dapatkan baris tempat letak label_2 = trselect2.queryselector ('label') elemen menu drop-down dari submenu // tentukan data di bawah situasi pemilihan yang berbeza selcases = {
        A: {label: 'aaa', sels: [{k: '1', v: 'alex'}, {k: '2', v: 'jack'}]},
        B: {label: 'bbb', sels: [{k: 'w', v: 'us'}, {k: 'x', v: 'australia'}, {k: 'y', v: 'india'}}}.
        C: {label: 'ccc', sels: [{k: '$', v: 'blue'}, {k: '£', v: 'green'}, {k: '§', v: 'merah'}}}
      };
    
    // Dengarkan acara perubahan menu drop-down utama selectabc.onchange = e => {
      // Kosongkan semua pilihan dalam menu sub-drop-down, hanya meninggalkan pilihan lalai pertama Select_2.length = 1;
      // Tetapkan semula keadaan yang dipilih menu sub-drop-down ke pilihan lalai pertama Select_2.SelectedIndex = 0;
    
      // Kemas kini teks label submenu berdasarkan nilai pemilihan menu utama // selectabc.value sepadan dengan 'a', 'b', 'c'
      label_2.textContent = selcases [selectabc.value] .label;
    
      /
    
      // Keluarkan kelas nodisplay dan buat submenu yang kelihatan trselect2.classlist.remove ('nodisplay');
    };

    Penjelasan terperinci mengenai kod JavaScript:

    1. Pengambilalihan Elemen Dom :
      • Selectabc: Dapatkan menu drop-down utama dengan ID Abcid.
      • trSelect2: Dapatkan elemen dengan kelas nodisplay, yang merupakan bekas submenu.
      • Label_2: Dapatkan elemen
      • SELECT_2: Dapatkan elemen di dalam TRSELECT2.
      • Struktur Data (Selcases) :
        • Ini adalah objek JavaScript yang digunakan untuk menyimpan data yang sepadan dengan pilihan menu utama yang berbeza ('A', 'B', 'C').
        • Setiap kunci (seperti 'a') sepadan dengan objek, yang mengandungi:
          • Label: Teks tajuk submenu.
          • Sels: Arahan yang mengandungi data pilihan submenu. Setiap pilihan adalah objek {k: 'nilai', v: 'teks'}, k ialah nilai sebenar pilihan (atribut nilai), dan v ialah teks paparan.
        • Struktur ini menjadikan pengurusan data jelas dan mudah diperluaskan.
      • Mendengarkan Acara (selectabc.onchange) :
        • Apabila nilai selectabc berubah, acara onchange dicetuskan dan logik dalam fungsi anak panah dilaksanakan.
      • Logik kemas kini dinamik :
        • select_2.length = 1;: Ini adalah cara yang kemas untuk membersihkan pilihan menu drop-down. Ia akan menetapkan bilangan pilihan dalam menu lungsur ke 1, yang hanya akan menyimpan pilihan pertama (lalai "pilih-") dan mengeluarkan semua pilihan berikutnya.
        • select_2.SelectedIndex = 0;: Memastikan bahawa sub-dropdown ditetapkan semula ke pilihan lalai pertama selepas setiap kemas kini untuk mengelakkan mengekalkan nilai terpilih yang terakhir.
        • Label_2.textContent = selcases [selectabc.value] .label;: Menurut nilai pemilihan semasa (selectabc.value) menu utama, ambil label yang sepadan dari objek Selcases, dan kemas kini teks label submenu.
        • selcases [selectabc.value] .sels.foreach (({k, v}) => select_2.add (pilihan baru (v, k))); Untuk setiap pasangan {k, v}, buat objek pilihan baru (pilihan baru (teks, nilai)) dan tambahkannya ke Select_2.
        • trSelect2.classlist.Remove ('Nodisplay');: Akhirnya, keluarkan kelas nodisplay bekas submenu untuk menjadikannya kelihatan.
      • Kelebihan dan pertimbangan

        Kelebihan:

        • Struktur HTML ringkas : Elakkan membuat banyak HTML berulang untuk setiap submenu, dan struktur DOM lebih jelas.
        • Operasi DOM yang cekap : Hanya mengendalikan elemen submenu yang sama dan bukannya berulang kali mencipta dan memusnahkan pelbagai elemen, menghasilkan prestasi yang lebih baik.
        • Mudah untuk mengekalkan dan melanjutkan : Semua data submenu tertumpu dalam objek Selcases JavaScript. Untuk mengubah atau menambah pilihan baru, anda hanya perlu mengemas kini struktur data ini tanpa mengubah HTML.
        • Pengalaman pengguna yang lebih baik : Hanya elemen yang diperlukan diberikan apabila halaman dimuatkan, dan kandungan dinamik dimuatkan atas permintaan.

        Perkara yang perlu diperhatikan:

        • Sumber Data : Dalam aplikasi praktikal, data dalam selcases biasanya akan diperolehi dari API back-end melalui permintaan Ajax, dan bukannya dikodkan keras dalam JavaScript.
        • Negeri Awal : Pastikan submenu tersembunyi apabila halaman beban dan menu utama mempunyai pilihan lalai "Sila pilih".
        • Penyerahan Borang : Jika nilai submenu dinamik ini perlu dikemukakan kepada pelayan, sila pastikan nilai semasa select_2 boleh diperoleh dengan betul apabila borang diserahkan.
        • Kebolehcapaian : Pertimbangkan untuk menambah atribut ARIA yang sesuai dengan kandungan dinamik untuk meningkatkan kebolehcapaian.

        Meringkaskan

        Melalui kaedah yang diperkenalkan dalam tutorial ini, anda boleh menggunakan JavaScript, HTML dan CSS ringkas untuk melaksanakan fungsi pensuisan menu drop-down dinamik yang cekap dan mudah. Mod ini sangat berguna apabila berurusan dengan bentuk dinamik dan antara muka interaktif yang bergantung pada pilihan. Ia bukan sahaja mengoptimumkan struktur kod, tetapi juga meningkatkan pengalaman pengguna. Menguasai teknologi ini akan membantu anda membina aplikasi web yang lebih kuat dan fleksibel.

Atas ialah kandungan terperinci Tutorial dengan cekap melaksanakan penukaran kandungan menu drop-down dinamik menggunakan JavaScript. 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

Tutorial PHP
1679
276
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.

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.

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

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.

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.

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.

See all articles