Middle
Kāda ir atšķirība starp atribūtiem un īpašībām HTML tagos?
sobes.tech AI
Atbilde no AI
Atribūti — tas ir ir nosaukuma-vertības pāris, kas rakstīts tieši HTML atvēršanas tagā. Tie nosaka sākotnējās vai pašreizējās elementa īpašības, bet ne vienmēr tieši atspoguļo tā pašreizējo stāvokli DOM.
Īpašības — tas ir vērtības, kas saistītas ar JavaScript objektiem, kas pārstāv DOM elementus. Tās ir dinamiski un atspoguļo pašreizējo stāvokli.
Šeit ir galvenās atšķirības:
- Vieta: Atribūti atrodas HTML, īpašības — DOM objektos.
- Datu tipi: Atribūti vienmēr ir virknes. Īpašības var būt dažādi datu tipi (virknes, skaitļi, loģiskas, objekti).
- Dinamisks: Atribūti ir statiski pēc lapas ielādes (lai gan tos var mainīt ar JavaScript). Īpašības var dinamiski mainīties atkarībā no lietotāja mijiedarbības vai skriptu loģikas.
- Saites: Daudzas īpašības ir tiešas atbilstības īpašībām (piemēram,
idatribūts unidīpašība). Bet ir atribūti bez tiešām īpašībām (data-*) un īpašības bez tiešām atribūtiem (textContent,className).
Piemērs:
<input type="text" value="Sākotnējā vērtība" readonly>
Šeit:
type="text",value="Sākotnējā vērtība"unreadonly— tas ir atribūti.
Pēc lapas ielādes, atbilstošās īpašības JavaScript:
// Saņem elementu
const inputElement = document.querySelector('input');
// Elementa īpašības
console.log(inputElement.type); // Parādīs: "text" (īpašība atbilst atribūtam)
console.log(inputElement.value); // Parādīs: "Sākotnējā vērtība" (sākotnējā īpašība)
console.log(inputElement.readOnly); // Parādīs: true (īpašība atbilst atribūtam, bet camelCase)
Ja lietotājs mainīs teksta lauka tekstu, īpašība value tiks atjaunināta, bet HTML value atribūts paliks tas pats, tikai atspoguļojot sākotnējo vērtību:
// Lietotājs ievadīja "Jauna vērtība"
// inputElement.value tagad būs "Jauna vērtība",
// bet inputElement.getAttribute('value') joprojām atgriezīs "Sākotnējā vērtība".