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 ( typedan 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 attributesproperti 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, typedan valueproperti (antara lain):
The idproperti adalah properti tercermin untuk idatribut: Mendapatkan properti membaca nilai atribut, dan pengaturan properti menulis nilai atribut. idadalah properti murni yang tercermin, tidak mengubah atau membatasi nilai.
The typeproperti adalah properti tercermin untuk typeatribut: Mendapatkan properti membaca nilai atribut, dan pengaturan properti menulis nilai atribut. typebukan 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.typememberi Anda "text".
Sebaliknya, valueproperti tidak mencerminkan valueatribut. Sebaliknya, ini adalah nilai input saat ini. Ketika pengguna mengubah nilai kotak input secara manual, valueproperti 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 valueproperti mencerminkan saat teks-konten di dalam kotak input, sedangkan valueatribut berisi awal teks-isi valueatribut 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 defaultValueproperti, yang merupakan refleksi murni dari valueatribut:
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 ( htmlFormencerminkan foratribut, classNamemencerminkan classatribut), banyak yang mencerminkan atribut mereka tetapi dengan pembatasan / modifikasi ( src, href, disabled, multiple), dan sebagainya di. Spesifikasinya mencakup berbagai jenis refleksi.