⊗jsPmPrMEWShB 483 of 505 menu

Banyak Elemen dengan Butang Tunjuk pada JavaScript

Katakan sekarang kita mempunyai banyak perenggan dan setiap satunya mempunyai butang sembunyinya sendiri:

<p>1</p><button>toggle</button> <p>2</p><button>toggle</button> <p>3</p><button>toggle</button>

Mari kita buat supaya apabila diklik pada butang, perenggan yang berkaitan dengannya akan disembunyikan atau ditunjukkan.

Untuk ini, kita perlukan cara untuk mengaitkan butang dengan perenggan kita. Terdapat beberapa cara untuk melakukan ini.

Cara Pertama

Mari kaitkan butang dan perenggan seperti berikut:

<p id="elem1">1</p><button data-elem="elem1">toggle</button> <p id="elem2">2</p><button data-elem="elem2">toggle</button> <p id="elem3">3</p><button data-elem="elem3">toggle</button>

Sekarang, apabila diklik pada mana-mana butang, kita akan membaca kandungan atribut data-elemnya dan mencari perenggan dengan id tersebut. Itulah yang akan kita togol. Mari kita laksanakan yang diterangkan:

let buttons = document.querySelectorAll('button'); for (let button of buttons) { button.addEventListener('click', function() { let elem = document.querySelector('#' + this.dataset.elem); elem.classList.toggle('hidden'); }); }

Kaji penyelesaian saya, kemudian secara berdikari, tanpa melihat kod saya, selesaikan tugas ini.

Cara Kedua

Meletakkan id dan atribut data tidak begitu mudah. Mari kita buat supaya kaitan adalah berdasarkan nombor urutan: katakan butang pertama menyembunyikan perenggan pertama, butang kedua - perenggan kedua dan seterusnya.

Mari laksanakan yang diterangkan:

let buttons = document.querySelectorAll('button'); let elems = document.querySelectorAll('p'); for (let i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function() { elems[i].classList.toggle('hidden'); }); }

Kaji penyelesaian saya, kemudian secara berdikari, tanpa melihat kod saya, selesaikan tugas ini.

Cara Ketiga

Seperti yang boleh dilihat, perenggan yang berkaitan dengan butang adalah jirannya di sebelah kiri. Ini boleh digunakan sebagai kaitan:

let buttons = document.querySelectorAll('button'); for (let button of buttons) { button.addEventListener('click', function() { this.previousElementSibling.classList.toggle('hidden'); }); }

Kaji penyelesaian saya, kemudian secara berdikari, tanpa melihat kod saya, selesaikan tugas ini.

csitrobnms