วิธีเริ่มต้นใช้งาน VUE3.0 อย่างรวดเร็ว: เข้าสู่การเรียนรู้
คำแนะนำที่เกี่ยวข้อง: บทช่วยสอน JavaScript
1. รับองค์ประกอบ
การดำเนินงาน
ตามรหัส ชื่อ และคลาส รับองค์ประกอบการดำเนินการผ่านแอตทริบิวต์และชื่อแท็ก
สรุป:
ยกเว้นว่าเมธอด document.getElementById() จะส่งคืนองค์ประกอบที่มีรหัสที่ระบุ ส่วนเมธอดอื่นจะส่งคืนคอลเลกชันที่ตรงตามข้อกำหนด หากต้องการรับหนึ่งในออบเจ็กต์ คุณสามารถรับได้จากตัวห้อย ซึ่งเริ่มต้นจาก 0 ตามค่าเริ่มต้น
วัตถุเอกสารมีคุณสมบัติบางอย่างที่สามารถใช้เพื่อรับองค์ประกอบในเอกสาร เช่น รับแท็กแบบฟอร์ม แท็กรูปภาพ ฯลฯ ทั้งหมด
โปรดทราบว่า
องค์ประกอบการดำเนินการที่ได้รับผ่านวิธีการของวัตถุเอกสารและคุณสมบัติของวัตถุเอกสารเป็นตัวแทนของวัตถุเดียวกัน ตัวอย่างเช่น document.getElementsByTagName('body')[0] สอดคล้องกับ document.body
วิธีการวัตถุเอกสารใหม่ของ HTML5
เพื่อให้ง่ายต่อการรับองค์ประกอบสำหรับการดำเนินการ HTML5 จะเพิ่มวิธีการใหม่สองวิธีให้กับวัตถุเอกสาร ได้แก่ querySelector() และ querySelectorAll()
เนื่องจากทั้งสองวิธีนี้ใช้ในลักษณะเดียวกัน วิธีต่อไปนี้จึงใช้เมธอด document.querySelector() เป็นตัวอย่าง
ในการดำเนินการ DOM วัตถุองค์ประกอบยังมีวิธีการรับองค์ประกอบที่ระบุภายในองค์ประกอบ ทั้งสองวิธีที่ใช้กันทั่วไปคือ getElementsByClassName() และ getElementsByTagName() พวกมันถูกใช้ในลักษณะเดียวกับวิธีการที่มีชื่อเดียวกันในอ็อบเจ็กต์เอกสาร
นอกจากนี้ อ็อบเจ็กต์องค์ประกอบยังจัดเตรียมแอ็ตทริบิวต์ Children เพื่อรับองค์ประกอบลูกขององค์ประกอบที่ระบุ ตัวอย่างเช่น รับองค์ประกอบลูกของ ul ในตัวอย่างข้างต้น
วัตถุ HTMLCollection
ความแตกต่างระหว่างวัตถุ HTMLCollection และ NodeList:
เคล็ดลับ: สำหรับคอลเลกชันที่ส่งคืนโดยเมธอด getElementsByClassName() เมธอด getElementsByTagName() และแอ็ตทริบิวต์ลูก id และชื่อสามารถแปลงเป็นแอ็ตทริบิวต์ได้โดยอัตโนมัติ
2. เนื้อหาองค์ประกอบ
ใน JavaScript หากคุณต้องการดำเนินการกับเนื้อหาองค์ประกอบที่ได้รับ คุณสามารถใช้คุณสมบัติและวิธีการที่ได้รับจาก DOM
ยกตัวอย่าง
การใช้รหัส
<!DOCTYPE html> <html> <หัว> <meta charset="UTF-8"> <title>การดำเนินการเนื้อหาองค์ประกอบ</title> </หัว> <ร่างกาย> <p id="กล่อง"> ย่อหน้าแรก... <p> ย่อหน้าที่สอง... <a href="http://www.example.com">ที่สาม</a> </p> </p> <สคริปต์> กล่อง var = document.getElementById('box'); console.log(box.innerHTML); console.log(box.innerText); console.log(box.textContent); </สคริปต์> </ร่างกาย> </html>
โปรดทราบว่า
ปัญหาความเข้ากันได้ของเบราว์เซอร์อาจเกิดขึ้นเมื่อใช้แอตทริบิวต์ innerText ดังนั้นจึงขอแนะนำ
ให้ใช้ innerHTML เพื่อรับหรือตั้งค่าเนื้อหาข้อความขององค์ประกอบให้มากที่สุดในระหว่างการพัฒนา ในเวลาเดียวกัน มีความแตกต่างบางประการระหว่างแอตทริบิวต์ innerHTML และเมธอด document.write() ในการตั้งค่าเนื้อหา วิธีแรกทำหน้าที่กับองค์ประกอบที่ระบุ ในขณะที่วิธีหลังสร้างหน้าเอกสาร HTML ใหม่ทั้งหมด ดังนั้นผู้อ่านควรเลือกวิธีการใช้งานที่เหมาะสมตามความต้องการที่แท้จริงในระหว่างการพัฒนา
[กรณี] การเปลี่ยนขนาดกล่อง
แนวคิดในการนำโค้ดไปใช้ :
① เขียน HTML และกำหนดขนาดของ p
② ทำการเปลี่ยนแปลงขนาดกล่องตามจำนวนการคลิกของผู้ใช้
3 เมื่อจำนวนคลิกเป็นเลขคี่ กล่องจะมีขนาดใหญ่ขึ้น เมื่อจำนวนคลิกเป็นเลขคู่ กล่องจะเล็กลง
การใช้รหัส
<!DOCTYPE html> <html> <หัว> <meta charset="UTF-8"> <สไตล์> .box{width:50px;height:50px;พื้นหลัง:#eee;margin:0 อัตโนมัติ;} </สไตล์> </หัว> <ร่างกาย> <p id="box" class="box"></p> <สคริปต์> กล่อง var = document.getElementById('box'); var i = 0; // บันทึกจำนวนครั้งที่ผู้ใช้คลิกบนกล่อง box.onclick = function() { // จัดการเหตุการณ์การคลิกของกล่อง ++i; if (i % 2) { // จำนวนคลิกเป็นเลขคี่และมีขนาดใหญ่ขึ้น this.style.width = '200px'; this.style.height = '200px'; this.innerHTML = 'ใหญ่'; } else { // จำนวนคลิกเป็นเลขคู่และมีขนาดเล็กลง this.style.width = '50px'; this.style.height = '50px'; this.innerHTML = 'เล็ก'; - - </สคริปต์> </ร่างกาย> </html>
3. คุณลักษณะขององค์ประกอบ
ใน DOM เพื่ออำนวยความสะดวกให้กับ JavaScript เพื่อรับ แก้ไข และสำรวจคุณลักษณะที่เกี่ยวข้องขององค์ประกอบ HTML ที่ระบุ จะมีการจัดเตรียมคุณลักษณะการดำเนินการและวิธีการ
คุณสามารถใช้แอ็ตทริบิวต์แอ็ตทริบิวต์เพื่อรับแอ็ตทริบิวต์ทั้งหมดขององค์ประกอบ HTML รวมถึงจำนวนแอ็ตทริบิวต์ทั้งหมด ความยาว
ยกตัวอย่าง
การใช้รหัส
<!DOCTYPE html> <html> <หัว> <meta charset="UTF-8"> <title>การดำเนินการแอตทริบิวต์องค์ประกอบ</title> <สไตล์> .gray{พื้นหลัง: #CCC;} #thick{แบบอักษรน้ำหนัก: โดดเด่นยิ่งขึ้น;} </สไตล์> </หัว> <ร่างกาย> <p>คำทดสอบ</p> <สคริปต์> // รับองค์ประกอบ p var ele = document.getElementsByTagName('p')[0]; // ① ส่งออกจำนวนแอตทริบิวต์ของ ele console.log ปัจจุบัน ('จำนวนคุณลักษณะก่อนการดำเนินการ: ' + ele.attributes.length); // ② เพิ่มแอตทริบิวต์ให้กับ ele และตรวจสอบจำนวนแอตทริบิวต์ ele.setAttribute('align', 'center'); ele.setAttribute('ชื่อ', 'ข้อความทดสอบ'); ele.setAttribute('คลาส', 'สีเทา'); ele.setAttribute('id', 'thick'); ele.setAttribute('style', 'font-size:24px;border:1px สีเขียวทึบ;'); console.log('จำนวนแอตทริบิวต์หลังจากเพิ่มแอตทริบิวต์: ' + ele.attributes.length); // 3 รับค่าแอตทริบิวต์สไตล์ของ ele console.log('รับค่าแอตทริบิวต์สไตล์:' + ele.getAttribute('style')); // ④ ลบแอตทริบิวต์ style ของ ele และตรวจสอบแอตทริบิวต์ที่เหลือ ele.removeAttribute('style'); console.log('ดูคุณสมบัติทั้งหมด:'); สำหรับ (var i = 0; i < ele.attributes.length; ++i) { console.log(ele.attributes[i]); - </สคริปต์> </ร่างกาย> </html>
4. การตรวจสอบสไตล์องค์ประกอบ
: แก้ไขสไตล์ผ่านการทำงานของแอตทริบิวต์องค์ประกอบ
ไวยากรณ์สไตล์องค์ประกอบ: style.Attribute name
ข้อกำหนด: คุณต้องลบเครื่องหมายยัติภังค์ "-" ในชื่อรูปแบบ CSS และใช้ตัวอักษรตัวแรกภาษาอังกฤษตัวที่สองเป็นตัวพิมพ์ใหญ่
ตัวอย่าง: หากต้องการตั้งค่าสีพื้นหลัง สีพื้นหลัง จะต้องเปลี่ยนเป็นสีพื้นหลังในการดำเนินการแอตทริบิวต์สไตล์
โปรดทราบว่า
รูปแบบลอยใน CSS ขัดแย้งกับคำสงวนของ JavaScript และเบราว์เซอร์ที่แตกต่างกันก็มีวิธีแก้ปัญหาที่แตกต่าง
กัน ตัวอย่างเช่น IE9-11, Chrome และ FireFox สามารถใช้ "float" และ "cssFloat" เบราว์เซอร์ Safari ใช้ "float" และ IE6~8 ใช้ "styleFloat"
คำถาม: องค์ประกอบสามารถมีตัวเลือกคลาสได้หลายตัว จะใช้งานรายการตัวเลือกระหว่างการพัฒนาได้อย่างไร
วิธีแก้ปัญหาดั้งเดิม: ใช้แอตทริบิวต์ className ของวัตถุองค์ประกอบเพื่อให้ได้ผลลัพธ์ที่ได้คือประเภทอักขระ จากนั้นประมวลผลสตริงตามสถานการณ์จริง
วิธีการจัดทำโดย HTML5: รายการตัวเลือกคลาสขององค์ประกอบ classList ใหม่ (อ่านอย่างเดียว)
ตัวอย่างเช่น: หากค่าคลาสขององค์ประกอบ p คือ "ชื่อ navlist ส่วนหัวของกล่อง" จะลบส่วนหัวได้อย่างไร
โซลูชัน
HTML5: องค์ประกอบ p object.classList.toggle("header");
การใช้รหัส
<!DOCTYPE html> <html> <หัว> <meta charset="UTF-8"> <title>การใช้งาน classList</title> <สไตล์> .bg{พื้นหลัง:#ccc;} .strong{font-size:24px;color:red;} .เรียบ{ความสูง:30px;ความกว้าง:120px;เส้นขอบรัศมี:10px;} </สไตล์> </หัว> <ร่างกาย> <ul> <li> PHP </ li> <li class="bg">จาวาสคริปต์</li> <li>ซี++</li> <li>ชวา</li> </ul> <script> // รับองค์ประกอบ li ตัวที่สอง var ele = document.getElementsByTagName('li')[1]; // หากไม่มีคลาสที่รัดกุมในองค์ประกอบ li ให้เพิ่ม if (!ele.classList.contains('strong ' )) { ele.classList.add('strong'); } // หากไม่มีคลาสที่ราบรื่นในองค์ประกอบ li ให้เพิ่มเข้าไป หากถูกลบ ele.classList.toggle('smooth'); log('เพิ่มและสลับหลังจากสไตล์: '); console.log(ele); <สคริปต์> ele.classList.remove('bg'); console.log('หลังจากลบ:'); console.log(เอเล); </สคริปต์> </ร่างกาย> </html>
นอกจากนี้ แอ็ตทริบิวต์ classList ยังมีวิธีดำเนินการและคุณสมบัติที่เกี่ยวข้องอื่นๆ อีกมากมาย
5. [กรณี] เอฟเฟกต์การสลับแถบแท็บ
แนวคิดในการนำโค้ดไปใช้ :
1 เขียน HTML เพื่อออกแบบโครงสร้างและรูปแบบของแถบแท็บ โดยที่คลาสเท่ากับปัจจุบันเพื่อระบุแท็บที่แสดงอยู่ในปัจจุบัน และค่าเริ่มต้นคือแท็บแรก
② รับแท็กทั้งหมดและเนื้อหาการแสดงผลที่สอดคล้องกับแท็ก
3. สำรวจและเพิ่มเหตุการณ์การวางเมาส์เหนือแต่ละป้ายกำกับ ในฟังก์ชันการประมวลผลเหตุการณ์ ให้สำรวจเนื้อหาที่แสดงทั้งหมดที่สอดคล้องกับป้ายกำกับ เมื่อเลื่อนเมาส์ไปเหนือป้ายกำกับ ให้เพิ่มกระแสผ่านเมธอด add() ของ classList มิฉะนั้นให้ใช้ ลบ () วิธีการย้ายออกจากปัจจุบัน
การใช้รหัส
<!DOCTYPE html> <html> <หัว> <meta charset="UTF-8"> <title>เอฟเฟกต์การสลับแถบแท็บ</title> <สไตล์> .tab-box{width:383px;margin:10px;border:1px solid #ccc;border-top:2px solid #206F96;} .tab-หัว{ความสูง:31px;} .tab-head-p{width:95px;height:30px;float:left;border-bottom:1px solid #ccc;border-right:1px solid #ccc;พื้นหลัง:#206F96;line-height:30px;text- align:center;cursor:pointer;color:#fff;} .tab-head .current{พื้นหลัง:#fff;border-bottom:1px solid #fff;color:#000;} .tab-head-r{เส้นขอบขวา:0;} .tab-body-p{จอแสดงผล:ไม่มี;ระยะขอบ:20px 10px;} .tab-body .current{จอแสดงผล:บล็อก;} </สไตล์> </หัว> <ร่างกาย> <p class="แท็บกล่อง"> <p class="แท็บหัว"> <p class="tab-head-p current">แท็บหนึ่ง</p> <p class="tab-head-p">แท็บ 2</p> <p class="tab-head-p">แท็บสาม</p> <p class="tab-head-p tab-head-r">แท็บที่สี่</p> </p> <!--jkdjfk?--> <p class="แท็บร่างกาย"> <p class="tab-body-p ปัจจุบัน"> 1 </p> <p class="tab-body-p"> 2 </p> <p class="แท็บ-body-p"> 3 </p> <p class="แท็บ-body-p"> 4 </p> </p> </p> <สคริปต์> // รับวัตถุองค์ประกอบแท็บทั้งหมดของแถบแท็บ var tabs = document.getElementsByClassName('tab-head-p'); // รับวัตถุเนื้อหาทั้งหมดของแถบแท็บ var ps = document.getElementsByClassName('tab-body-p'); for (var i = 0; i < tabs.length; ++i) { // สำรวจวัตถุองค์ประกอบ tabs[i].onmouseover = function() { // เพิ่มเหตุการณ์การเลื่อนเมาส์ไปที่วัตถุองค์ประกอบแท็กสำหรับ ( var i = 0; i < ps.length; ++i) { // สำรวจวัตถุองค์ประกอบเนื้อหาของแถบแท็บ if (tabs[i] == this) { // แสดงองค์ประกอบ li ps[i] ที่เมาส์ปัจจุบัน ได้เลื่อนไปเหนือ .classList.add('current'); แท็บ[i].classList.add('ปัจจุบัน'); } else { // ซ่อนองค์ประกอบ li อื่น ๆ ps[i].classList.remove('current'); แท็บ[i].classList.remove('ปัจจุบัน'); - - - - </สคริปต์> </ร่างกาย> </html>
คำแนะนำที่เกี่ยวข้อง: กวดวิชาจาวาสคริปต์
ข้างต้นเป็นเนื้อหาโดยละเอียดของการดำเนินงานองค์ประกอบ HTML อธิบายรายละเอียดโดยตัวอย่าง JavaScript สำหรับข้อมูลเพิ่มเติม โปรดใส่ใจกับบทความอื่น ๆ ที่เกี่ยวข้องบนเว็บไซต์ php จีน!