Saat menulis kode sumber HTML, Anda dapat menentukan atribut pada elemen HTML Anda. Kemudian, setelah browser mem-parsing kode Anda, simpul DOM yang sesuai akan dibuat. Node ini adalah objek, dan karenanya memiliki properti .
Misalnya, elemen HTML ini:
<input type="text" value="Name:">
memiliki 2 atribut ( type
dan value
).
Setelah browser mem-parsing kode ini, objek HTMLInputElement akan dibuat, dan objek ini akan berisi puluhan properti seperti: terima, accessKey, luruskan, alt, atribut, autofocus, baseURI, dicentang, childElementCount, childNodes, anak-anak, classList, className, clientTinggi, dll.
Untuk objek DOM node tertentu, properti adalah properti dari objek itu, dan atribut adalah elemen dari attributes
properti objek itu.
Saat simpul DOM dibuat untuk elemen HTML tertentu, banyak propertinya terkait dengan atribut dengan nama yang sama atau mirip, tetapi itu bukan hubungan satu-ke-satu. Misalnya, untuk elemen HTML ini:
<input id="the-input" type="text" value="Name:">
DOM node yang sesuai akan memiliki id
, type
dan value
properti (antara lain):
The id
properti adalah properti tercermin untuk id
atribut: Mendapatkan properti membaca nilai atribut, dan pengaturan properti menulis nilai atribut. id
adalah properti murni yang tercermin, tidak mengubah atau membatasi nilai.
The type
properti adalah properti tercermin untuk type
atribut: Mendapatkan properti membaca nilai atribut, dan pengaturan properti menulis nilai atribut. type
bukan properti yang dipantulkan murni karena terbatas pada nilai yang diketahui (misalnya, jenis input yang valid). Jika Anda pernah <input type="foo">
, maka theInput.getAttribute("type")
beri Anda "foo"
tetapi theInput.type
memberi Anda "text"
.
Sebaliknya, value
properti tidak mencerminkan value
atribut. Sebaliknya, ini adalah nilai input saat ini. Ketika pengguna mengubah nilai kotak input secara manual, value
properti akan mencerminkan perubahan ini. Jadi jika pengguna memasukkan "John"
ke dalam kotak input, maka:
theInput.value // returns "John"
sedangkan:
theInput.getAttribute('value') // returns "Name:"
The value
properti mencerminkan saat teks-konten di dalam kotak input, sedangkan value
atribut berisi awal teks-isi value
atribut dari kode sumber HTML.
Jadi, jika Anda ingin tahu apa yang ada di dalam kotak teks, baca properti. Namun, jika Anda ingin tahu apa nilai awal kotak teks itu, baca atributnya. Atau Anda dapat menggunakan defaultValue
properti, yang merupakan refleksi murni dari value
atribut:
theInput.value // returns "John"
theInput.getAttribute('value') // returns "Name:"
theInput.defaultValue // returns "Name:"
Ada beberapa sifat yang secara langsung mencerminkan atribut mereka ( rel
, id
), beberapa refleksi langsung dengan nama yang sedikit-yang berbeda ( htmlFor
mencerminkan for
atribut, className
mencerminkan class
atribut), banyak yang mencerminkan atribut mereka tetapi dengan pembatasan / modifikasi ( src
, href
, disabled
, multiple
), dan sebagainya di. Spesifikasinya mencakup berbagai jenis refleksi.