⊗jsPmPrSEE 477 of 505 menu

Atskiro elemento redagavimas JavaScript

Dabar išmoksime redaguoti elementų tekstus naudojant įvesties laukus. Pradėsime nuo paprastų dalykų ir palaipsniui sudėtinsime.

Taigi, turime pastraipą ir įvesties lauką, esančius tame pačiame tėviniame elemente:

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

Padarykime taip, kad praradus fokusą įvesties lauke, jo tekstas atsirastų pastraipoje:

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

Dabar padarykime taip, kad užėjus puslapį, įvesties lauke jau būtų pastraipos tekstas. Taip mes galėsime naudoti įvesties lauką redaguoti tekstą, esantį pastraipoje.

Įgyvendinkime:

let elem = document.querySelector('#elem'); let input = document.querySelector('#input'); input.value = elem.textContent; // įrašome į įvesties lauką pastraipos tekstą input.addEventListener('blur', function() { elem.textContent = this.value; });

Modifikuokite aukščiau pateiktą kodą taip, kad pastraipos tekstas keistųsi ne praradus fokusą, o vestant tekstą į įvesties lauką.

Įvesties lauko atsiradimas

Dabar padarykime taip, kad iš pradžių įvesties lauko puslapyje nebūtų, o jis atsirastų paspaudus ant pastraipos. Tai yra, mūsų pradinis HTML atrodys taip:

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

Pirmiausia tiesiog įgyvendinkime įvesties lauko atsiradimą, be redagavimo:

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

Dabar padarykime taip, kad praradus fokusą įvesties lauke, pasikeistų pastraipos tekstas:

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

Tačiau mūsų kodas nėra tobulas, nes kiekvienas paspaudimas ant pastraipos sukurs naują įvesties lauką.

Norėdami išspręsti problemą, tiesiog praradus fokusą pašalinsime dabartinį įvesties lauką:

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(); // pašaliname įvesties lauką }); elem.parentElement.appendChild(input); });

Savarankiškai, nežiūrėdami į mano kodą, išspręskite aprašytą 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