⊗jsPmPrMEWShB 483 of 505 menu

Daug elementų su mygtukais rodymui JavaScript

Tarkime, kad dabar turime daug pastraipų ir kiekviena turi savo mygtuką paslėpimui:

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

Padarykime taip, kad paspaudus mygtuką būtų paslėpta arba rodoma atitinkama jam pastraipa.

Kad tai padarytume, kažkaip turime susieti mygtukus su mūsų pastraipomis. Tam yra keletas būdų.

Pirmas būdas

Susiekime mygtukus ir pastraipas taip:

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

Dabar paspaudus bet kurį mygtuką mes skaitysime jo data-elem atributo turinį ir ieškosime pastraipos su tokiu id. Jos ir slėpsime/rodysime. Įgyvendinkime tai:

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'); }); }

Išstudijuokite mano sprendimą, o tada savarankiškai, nežiūrėdami į mano kodą, išspręskite šią užduotį.

Antras būdas

Idėti id ir data-atributus nėra labai patogu. Padarykime taip, kad ryšys būtų pagal eilės numerį: tegul pirmas mygtukas slepia pirmą pastraipą, antras mygtukas - antrą ir taip toliau.

Įgyvendinkime tai:

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'); }); }

Išstudijuokite mano sprendimą, o tada savarankiškai, nežiūrėdami į mano kodą, išspręskite šią užduotį.

Trečias būdas

Kaip galima pamatyti, pastraipa, susijusi su mygtuku, yra jo kairysis kaimynas. Tai galima panaudoti kaip ryšį:

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

Išstudijuokite mano sprendimą, o tada savarankiškai, nežiūrėdami į mano kodą, išspręskite šią užduotį.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti