Привязка каждого изображения к своей кнопке
Всем привет!
Проходя курс по js столкнулся с таким заданием: через js под каждым изображением на странице сайта необходимо создать кнопку, которая бы по клику срывала то изображение, под которым она находится. Прилепить кнопку под изображение у меня получилось, но беда в том, что на какую бы кнопку я не нажимал, исчезают все изображения и до меня никак не дойдет, каким образом должен я связать каждое изображение со своей кнопкой. Менять что либо в самом HTML коде нельзя, только через JS, использование jQuery тоже запрещено. Помогите пожалуйста.Уже неделю сижу с этим заданием.(( P.S курс на нидерландском языке, так что пусть вас не смущает тарабарщина в HTML коде) JS: window=onload = function() { //-----BUTTON var nDD = document.getElementsByClassName('toggle'); var y = nDD.length; for(var i = 0; i <= y; i++){ var eItem = document.createElement("BUTTON"); eItem.className = "button"; var sTekst = document.createTextNode('скрыть'); eItem.appendChild(sTekst); nDD[i].appendChild(eItem); //-----прячем IMG eItem.onclick = function() { var x = document.getElementsByClassName('screenshot'); for (var i = 0; i < x.length; i++){ if (x[i].style.display === "none") { x[i].style.display = "block"; } else { x[i].style.display = "none"; } } } } } HTML: <dl> <dt>Site – Manage Sites - New:</dt> <dd>de Wizard Site definition verschijnt, je beantwoordt een aantal vragen <div class="toggle"><img class="screenshot" width="238" height="222" src="images/clip_image014.gif" alt="schermafdruk"></div> </dd> <dt> “Hoe wil u de website noemen?” </dt> <dd>vul in <i> George’s site</i> <div class="toggle"><img class="screenshot" width="310" height="307" src="images/clip_image002.gif" alt="schermafdruk"> </div> </dd> <dt> “Wil u Server technologie gebruiken?”</dt> <dd> Neen, ga verder <div class="toggle"><img class="screenshot" width="407" height="175" src="images/clip_image004.gif" alt="schermafdruk"> </div> </dd> <dt> “Hoe wil u tewerk gaan met de bestanden?” </dt> <dd>kies voor <i>Ik wil de bestanden lokaal bewerken en dan uploaden naar de server (aangeraden)</i> </dd> <dt>”Waar wil u de bestanden lokaal opslaan?</dt> <dd>Op <i>C:\My Documents\George\George’s site </i>(wordt automatisch ingevuld) <div class="toggle"><img class="screenshot" width="487" height="294" src="images/clip_image006.gif" alt="schermafdruk"> </div> </dd> <dt> “Hoe wil u de bestanden kopiëren naar de Remote Server?”</dt> <dd>kies voor <i>Local/Network</i></dd> <dt>”In welke map op die server wil u de bestanden kopiëren?”</dt> <dd>Op <i>\\Server2\cursisten\Daikin\George\</i> <div class="toggle"><img class="screenshot" width="494" height="246" src="images/clip_image008.gif" alt="schermafdruk"> </div> </dd> <dt> “Wilt u ‘check in‘ en ‘check out’ activeren?” </dt> <dd><i>Neen</i>, ga verder <div class="toggle"><img class="screenshot" width="407" height="175" src="images/clip_image010.gif" alt="schermafdruk"> </div> </dd> <dt> U bent klaar: de opsomming van al deze instellingen verschijnt</dt> <dd>klik <i>Done</i> als u klaar bent <div class="toggle"><img class="screenshot" width="422" height="418" src="images/clip_image012.gif" alt="schermafdruk"> </div> </dd> <dt> U ziet de lijst van websites die je reeds maakte, </dt> <dd>klik opnieuw <i>Done</i> <div class="toggle"><img class="screenshot" width="238" height="222" src="images/clip_image014.gif" alt="schermafdruk"> </div> </dd> <dt>Eenmaal een site gemaakt, heb je een overzicht van alle bestanden ervan in het<i> Files Panel</i> </dt> <dd>De figuur hieronder toont de toestand van een afgewerkte site. <div class="toggle"><img class="screenshot" width="216" height="313" src="images/clip_image016.gif" alt="schermafdruk"> </div> </dd> </dl> |
<img src="" alt="картинка 1"> <img src="" alt="картинка 2"> <img src="" alt="картинка 3"><br> <button>кнопка 1</button> <button>кнопка 2</button> <button>кнопка 3</button> <script> var img = document.querySelectorAll('img'); document.querySelectorAll('button').forEach((el,i)=>el.onclick=e=>img[i].style.display= img[i].style.display == 'none'?'inline':'none'); </script> |
DmitryBelg,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script> window=onload = function() { //-----BUTTON var nDD = document.getElementsByClassName('screenshot'); var y = nDD.length; for(var i = 0; i < y; i++){ var eItem = document.createElement("BUTTON"); eItem.className = "button"; eItem.dataset.i = i; var sTekst = document.createTextNode('скрыть'); eItem.appendChild(sTekst); nDD[i].parentNode.appendChild(eItem); //-----прячем IMG eItem.onclick = function() { var i = this.dataset.i; var img = nDD[i]; img.style.display = img.style.display ? "" : "none"; this.textContent = img.style.display ? "показать" : "скрыть"; } } } </script> </head> <body> <dl> <dt>Site – Manage Sites - New:</dt> <dd>de Wizard Site definition verschijnt, je beantwoordt een aantal vragen <div class="toggle"><img class="screenshot" width="238" height="222" src="images/clip_image014.gif" alt="schermafdruk"></div> </dd> <dt> “Hoe wil u de website noemen?” </dt> <dd>vul in <i> George’s site</i> <div class="toggle"><img class="screenshot" width="310" height="307" src="images/clip_image002.gif" alt="schermafdruk"> </div> </dd> <dt> “Wil u Server technologie gebruiken?”</dt> <dd> Neen, ga verder <div class="toggle"><img class="screenshot" width="407" height="175" src="images/clip_image004.gif" alt="schermafdruk"> </div> </dd> <dt> “Hoe wil u tewerk gaan met de bestanden?” </dt> <dd>kies voor <i>Ik wil de bestanden lokaal bewerken en dan uploaden naar de server (aangeraden)</i> </dd> <dt>”Waar wil u de bestanden lokaal opslaan?</dt> <dd>Op <i>C:\My Documents\George\George’s site </i>(wordt automatisch ingevuld) <div class="toggle"><img class="screenshot" width="487" height="294" src="images/clip_image006.gif" alt="schermafdruk"> </div> </dd> <dt> “Hoe wil u de bestanden kopiëren naar de Remote Server?”</dt> <dd>kies voor <i>Local/Network</i></dd> <dt>”In welke map op die server wil u de bestanden kopiëren?”</dt> <dd>Op <i>\\Server2\cursisten\Daikin\George\</i> <div class="toggle"><img class="screenshot" width="494" height="246" src="images/clip_image008.gif" alt="schermafdruk"> </div> </dd> <dt> “Wilt u ‘check in‘ en ‘check out’ activeren?” </dt> <dd><i>Neen</i>, ga verder <div class="toggle"><img class="screenshot" width="407" height="175" src="images/clip_image010.gif" alt="schermafdruk"> </div> </dd> <dt> U bent klaar: de opsomming van al deze instellingen verschijnt</dt> <dd>klik <i>Done</i> als u klaar bent <div class="toggle"><img class="screenshot" width="422" height="418" src="images/clip_image012.gif" alt="schermafdruk"> </div> </dd> <dt> U ziet de lijst van websites die je reeds maakte, </dt> <dd>klik opnieuw <i>Done</i> <div class="toggle"><img class="screenshot" width="238" height="222" src="images/clip_image014.gif" alt="schermafdruk"> </div> </dd> <dt>Eenmaal een site gemaakt, heb je een overzicht van alle bestanden ervan in het<i> Files Panel</i> </dt> <dd>De figuur hieronder toont de toestand van een afgewerkte site. <div class="toggle"><img class="screenshot" width="216" height="313" src="images/clip_image016.gif" alt="schermafdruk"> </div> </dd> </dl> </body> </html> |
Спасибо!
|
Спасибо!) То что нужно!
|
Часовой пояс GMT +3, время: 07:40. |