⊗jsPmPrSEE 477 of 505 menu

การแก้ไของค์ประกอบแต่ละรายการด้วย JavaScript

ตอนนี้เราจะเรียนรู้วิธีการแก้ไขข้อความขององค์ประกอบโดยใช้ช่องป้อนข้อมูล เริ่มจากสิ่งง่าย ๆ และค่อย ๆ ทำให้ซับซ้อนขึ้น

ดังนั้น ให้เรามีย่อหน้าและอินพุต ซึ่งอยู่ในพาเรนต์เดียวกัน:

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

มาทำให้เมื่ออินพุตเสียโฟกัส ข้อความของมันจะปรากฏในย่อหน้ากัน:

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

ตอนนี้มาทำให้เมื่อเข้าหน้าเว็บ ข้อความของย่อหน้าอยู่ในอินพุตแล้ว ด้วยวิธีนี้เราจะสามารถแก้ไขข้อความที่อยู่ในย่อหน้าโดยใช้อินพุตได้

มาเขียนโค้ดกัน:

let elem = document.querySelector('#elem'); let input = document.querySelector('#input'); input.value = elem.textContent; // เขียนข้อความของย่อหน้าลงในอินพุต input.addEventListener('blur', function() { elem.textContent = this.value; });

แก้ไขโค้ดด้านบน เพื่อให้ข้อความของย่อหน้าเปลี่ยนไม่ใช่เมื่อเสียโฟกัส แต่เมื่อมีการป้อนข้อความลงในอินพุต

การปรากฏของอินพุต

ตอนนี้มาทำให้ในตอนแรกไม่มีอินพุตบนหน้าเว็บ แต่จะปรากฏขึ้นเมื่อคลิกที่ย่อหน้า นั่นคือ HTML เริ่มต้นของเราจะเป็นดังนี้:

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

เริ่มต้นมาเขียนโค้ดการปรากฏของอินพุตกันก่อน โดยยังไม่มีการแก้ไข:

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

และตอนนี้มาทำให้เมื่ออินพุตเสียโฟกัส ข้อความของย่อหน้าจะเปลี่ยน:

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

อย่างไรก็ตามโค้ดของเราไม่สมบูรณ์ เพราะการคลิกที่ย่อหน้าทุกครั้งจะทำให้มีอินพุตใหม่ปรากฏขึ้น

เพื่อแก้ไขปัญหา เราจะลบอินพุตปัจจุบันเมื่อเสียโฟกัส:

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(); // ลบอินพุต }); elem.parentElement.appendChild(input); });

แก้ไขปัญหาที่อธิบายไว้ด้วยตัวเอง โดยไม่แอบดูโค้ดของฉัน

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ