⊗jsPmPrSEE 477 of 505 menu

Úprava jednotlivého prvku v JavaScripte

Teraz sa naučíme upravovať texty prvkov pomocou vstupných polí. Začneme s jednoduchými vecami a budeme postupne komplikovať.

Takže, predpokladajme, že máme daný odsek a vstupné pole, umiestnené v jednom rodičovi:

<div id="parent"> <p id="elem">text</p> <input id="input"> </div>

Urobme tak, aby pri strate fokusu vo vstupnom poli sa jeho text objavil v odseku:

let elem = document.querySelector('#elem'); let input = document.querySelector('#input'); input.addEventListener('blur', function() { elem.textContent = this.value; });

Teraz urobme tak, aby pri načítaní stránky už vo vstupnom poli bol text odseku. Týmto spôsobom budeme môcť pomocou vstupného poľa upravovať text umiestnený v odseku.

Realizujme:

let elem = document.querySelector('#elem'); let input = document.querySelector('#input'); input.value = elem.textContent; // zapíšeme do vstupného poľa text odseku input.addEventListener('blur', function() { elem.textContent = this.value; });

Upravte vyššie uvedený kód tak, aby text odseku sa menil nie pri strate fokusu, ale počas zadávania textu do vstupného poľa.

Objavenie sa vstupného poľa

Teraz urobme tak, aby vstupné pole spočiatku nebolo na stránke, ale objavilo sa po kliknutí na odsek. To znamená, že náš počiatočný HTML bude vyzerať takto:

<div id="parent"> <p id="elem">text</p> </div>

Na začiatok jednoducho realizujme objavenie sa vstupného poľa, bez úpravy:

let elem = document.querySelector('#elem'); elem.addEventListener('click', function() { let input = document.createElement('input'); input.value = elem.textContent; elem.parentElement.appendChild(input); });

A teraz urobme tak, aby pri strate fokusu vo vstupnom poli sa zmenil text odseku:

let elem = document.querySelector('#elem'); elem.addEventListener('click', function() { let input = document.createElement('input'); input.value = elem.textContent; input.addEventListener('blur', function() { elem.textContent = this.value; }); elem.parentElement.appendChild(input); });

Náš kód však nie je dokonalý, pretože každé kliknutie na odsek povedie k objaveniu sa nového vstupného poľa.

Na vyriešenie problému jednoducho pri strate fokusu odstránime aktuálne vstupné pole:

let elem = document.querySelector('#elem'); elem.addEventListener('click', function() { let input = document.createElement('input'); input.value = elem.textContent; input.addEventListener('blur', function() { elem.textContent = this.value; this.remove(); // odstránime vstupné pole }); elem.parentElement.appendChild(input); });

Samostatne, bez nahliadnutia do môjho kódu, vyriešte popísanú úlohu.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť