⊗jsPmPrSEE 477 of 505 menu

Üksiku elemendi muutmine JavaScriptis

Nüüd õpime muutma elementide tekste sisestusväljade abil. Alustame lihtsatest asjadest ja muudame järjest keerukamaks.

Oletame, et meil on antud lõik ja sisestusväli, mis asuvad samas vanemaelemendis:

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

Teeme nii, et kui sisestusväli kaotab fookuse, ilmub selle tekst lõigus:

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

Teeme nüüd nii, et lehele sisenedes on sisestusväljas juba lõigu tekst. Nii saame sisestusvälja abil muuta lõigus olevat teksti.

Rakendame:

let elem = document.querySelector('#elem'); let input = document.querySelector('#input'); input.value = elem.textContent; // kirjutame sisestusväljale lõigu teksti input.addEventListener('blur', function() { elem.textContent = this.value; });

Muutke ülaltoodud koodi nii, et lõigu teksti muutub mitte fookuse kaotamisel, vaid vastavalt sisestusväljale teksti sisestamisele.

Sisestusvälja ilmumine

Teeme nüüd nii, et sisestusvälja algselt lehel ei ole, vaid see ilmub lõigule klõpsates. See tähendab, et meie algne HTML näeb välja selline:

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

Alustuseks lihtsalt rakendame sisestusvälja ilmumise, ilma muutmiseta:

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

Ja teeme nüüd nii, et kui sisestusväli kaotab fookuse, muudetakse lõigu teksti:

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

Meie kood pole siiski täiuslik, sest iga lõigule klõpsamine toob kaasa uue sisestusvälja ilmumise.

Probleemi lahendamiseks eemaldame lihtsalt fookuse kaotamisel jooksva sisestusvälja:

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(); // eemaldame sisestusvälja }); elem.parentElement.appendChild(input); });

Lahendage kirjeldatud ülesanne iseseisvalt, ilma minu koodi peale vaatamata.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu