Rumah > Soal Jawab > teks badan
P粉0463871332023-09-06 00:19:35
UL LI bukan elemen anak pilihan yang sah.
Namun, saya memudahkan kod anda untuk kecekapan.
Saya menambahkan atribut data pada setiap div bahasa. Sifat ini memegang nilai bahasa yang mewakili kandungan. Saya juga mencipta kelas css yang dipanggil "aktif" yang akan menunjukkan div bahasa yang sesuai dan menjadikan div bahasa tersembunyi secara lalai.
Kemudian saya menggunakan pengendali acara dan bukannya acara sebaris(onchange) yang merupakan cara yang lebih baik dan juga akan membantu anda melakukan lebih banyak lagi pada masa hadapan.
Dalam pendengar acara saya, saya hanya mendapat nilai yang dipilih. Saya kemudian melihat jika terdapat sebarang div bahasa dengan kelas aktif, dan jika ya, padamkannya. Saya kemudian mencari dan menambah kelas aktif ke div bahasa yang sesuai.
Proses ini akan membantu anda memanjangkan kod anda kerana anda tidak perlu mengambil berat tentang kenyataan.
let langSelect = document.querySelector("#language_select"); langSelect.addEventListener("change",(e) => { let shown = document.querySelector(".active[data-lang]"); if(shown)shown.classList.remove("active"); document.querySelector(`[data-lang='${langSelect.value}']`).classList.add("active") });
[data-lang]{visibility:hidden} .active[data-lang]{visibility:visible;}
<select class="nav-item has-sub-menu language-selector" id="language_select"> <option disabled selected value="">Language</option> <option value="id">Indonesia</option> <option value="en">English</option> </select> <div class="col-9 col-md-10 col-lg-8 mx-auto active" data-lang="id" id="slider-id1"> <p class="slide-subtitle narrow-centerd-text"> indonesia indonesia indonesia </p> </div> <div class="col-9 col-md-10 col-lg-8 mx-auto" data-lang="en" id="slider-en1"> <p class="slide-subtitle narrow-centerd-text"> en en en </p> </div>