เมื่อเขียนซอร์สโค้ด HTML คุณสามารถกำหนดคุณสมบัติในองค์ประกอบ HTML ของคุณ จากนั้นเมื่อเบราว์เซอร์แยกรหัสของคุณโหนด DOM ที่เกี่ยวข้องจะถูกสร้างขึ้น โหนดนี้เป็นวัตถุและดังนั้นจึงมีคุณสมบัติ
ตัวอย่างเช่นองค์ประกอบ HTML นี้:
<input type="text" value="Name:">
มี 2 คุณลักษณะ ( type
และvalue
)
เมื่อเบราว์เซอร์แยกวิเคราะห์รหัสนี้วัตถุHTMLInputElementจะถูกสร้างขึ้นและวัตถุนี้จะมีคุณสมบัติหลายอย่างเช่น: accept, accessKey, align, alt, คุณลักษณะ, ออโต้โฟกัส, baseURI, การตรวจสอบ, childElementCount, childNode, classList, className, ลูกค้าความสูง ฯลฯ
สำหรับวัตถุโหนด DOM ที่ระบุคุณสมบัติคือคุณสมบัติของวัตถุนั้นและแอตทริบิวต์เป็นองค์ประกอบของattributes
คุณสมบัติของวัตถุนั้น
เมื่อโหนด DOM ถูกสร้างขึ้นสำหรับองค์ประกอบ HTML ที่กำหนดคุณสมบัติส่วนใหญ่จะเกี่ยวข้องกับแอตทริบิวต์ที่มีชื่อเหมือนหรือคล้ายกัน แต่ไม่ใช่ความสัมพันธ์แบบหนึ่งต่อหนึ่ง ตัวอย่างเช่นสำหรับองค์ประกอบ HTML นี้:
<input id="the-input" type="text" value="Name:">
โหนด DOM ที่เกี่ยวข้องจะมีid
, type
และvalue
คุณสมบัติ (อื่น):
id
คุณสมบัติเป็นคุณสมบัติสะท้อนสำหรับid
แอตทริบิวต์: การเดินทางสถานที่ให้อ่านค่าแอตทริบิวต์และการตั้งค่าคุณสมบัติเขียนค่าแอตทริบิวต์ id
เป็นคุณสมบัติที่สะท้อนกลับอย่างแท้จริงมันไม่ได้ปรับเปลี่ยนหรือ จำกัด ค่า
type
คุณสมบัติเป็นคุณสมบัติสะท้อนสำหรับtype
แอตทริบิวต์: การเดินทางสถานที่ให้อ่านค่าแอตทริบิวต์และการตั้งค่าคุณสมบัติเขียนค่าแอตทริบิวต์ type
ไม่ใช่คุณสมบัติที่สะท้อนได้อย่างแท้จริงเนื่องจาก จำกัด เฉพาะค่าที่รู้จัก (เช่นประเภทที่ถูกต้องของอินพุต) หากคุณมี<input type="foo">
แล้วtheInput.getAttribute("type")
จะช่วยให้คุณ"foo"
แต่จะช่วยให้คุณtheInput.type
"text"
ในทางตรงกันข้ามvalue
คุณสมบัติไม่ได้สะท้อนvalue
คุณลักษณะ แต่มันคือค่าปัจจุบันของอินพุต เมื่อผู้ใช้เปลี่ยนค่าของกล่องป้อนข้อมูลด้วยตนเองvalue
คุณสมบัติจะแสดงถึงการเปลี่ยนแปลงนี้ ดังนั้นหากผู้ใช้ป้อนข้อมูล"John"
ลงในช่องป้อนข้อมูลแล้ว:
theInput.value // returns "John"
ขณะที่:
theInput.getAttribute('value') // returns "Name:"
value
คุณสมบัติสะท้อนให้เห็นถึงปัจจุบันข้อความเนื้อหาภายในกล่องใส่ในขณะที่value
แอตทริบิวต์มีเริ่มต้นข้อความเนื้อหาของvalue
แอตทริบิวต์จากรหัสที่มา HTML
ดังนั้นหากคุณต้องการทราบว่ามีอะไรอยู่ในกล่องข้อความให้อ่านคุณสมบัติ อย่างไรก็ตามหากคุณต้องการทราบว่าค่าเริ่มต้นของกล่องข้อความคืออะไรให้อ่านคุณสมบัติ หรือคุณสามารถใช้defaultValue
คุณสมบัติซึ่งเป็นภาพสะท้อนที่แท้จริงของvalue
คุณลักษณะ:
theInput.value // returns "John"
theInput.getAttribute('value') // returns "Name:"
theInput.defaultValue // returns "Name:"
มีหลายคุณสมบัติที่สะท้อนโดยตรงแอตทริบิวต์ของพวกเขา (มีrel
, id
) บางสะท้อนโดยตรงกับชื่อเล็กน้อยที่แตกต่างกัน ( htmlFor
สะท้อนให้เห็นถึงfor
คุณลักษณะclassName
สะท้อนให้เห็นถึงclass
แอตทริบิวต์) หลายอย่างที่สะท้อนให้เห็นถึงแอตทริบิวต์ของพวกเขา แต่มีข้อ จำกัด / การปรับเปลี่ยน ( src
, href
, disabled
, multiple
) และอื่น ๆ บน. ข้อมูลจำเพาะครอบคลุมการสะท้อนชนิดต่าง ๆ