Attribute and property in HTML_html/css_WEB-ITnose
1. Overview
Attribute and property are two concepts that are often confused.
To put it simply, property is accessed in JS code:
document.getElementByTagName('my-element').prop1 = 'hello';
attribute is similar This kind:
The way to access attribute in JS code is getAttribute and setAttribute:
document.getElementByTagName( 'my-element').setAttribute('attr1','Hello');
document.getElementByTagName('my-element').getAttribute('attr1','Hello');
2. Differences
In most cases, the two are equivalent. In web standards, it is often stipulated that an attribute "reflects" a property with the same name. But there are still many exceptions.
1. Inconsistent names
The most typical one is className. In order to avoid JavaScript reserved words, the property corresponding to the class attribute in JS is className.
var div = document.getElementByTagName('div');
div.className //cls1 cls2
2. Inconsistent types
The most typical one is style, which does not accept strings type assignment.
var div = document. getElementByTagName('div');
div.style // Object
3. Inconsistent semantics
such as a element href attribute.
var a = document.getElementByTagName( 'a');
a.href // "http://m.taobao.com", this url is the resolved result
a.getAttribute('href') / / "//m.taobao.com", exactly the same as in the HTML code
4. One-way synchronization relationship
value is an extremely Special attribute/property.
var input = document.getElementByTagName('input');
//If the property is not set, the result is attribute
input.value //cute
input.getAttribute('value'); //cute
input.value = 'hello';
//If the value attribute has been set, the attribute remains unchanged and the property changes. The actual effect on the element is that property takes precedence
input. value //hello
input.getAttribute('value'); //cute
In addition, the display status of the checkbox is checked and indeterminate are determined by two properties, and there is only one property named checked. In this case, the property is a more complete access model.
3. Special Scenarios
1.mutation
Using mutation observer, only attribute changes can be monitored.
var observer = new MutationObserver(function(mutations){
for(var i = 0; i < mutations.length; i ) {
var mutation = mutations [i];
console.log(mutation.attributeName);
}
});
observer.observe(element,{attributes: true});
element.prop1 = 'aa' // Will not trigger
element.setAttribute('attr1', 'aa') // Will trigger
2.custom element
When using WebComponents, you can define attributes and properties. The two can reflect each other or have no correlation at all.
var MyElementProto = Object.create(HTMLElement.prototype, {
createdCallback : {
value : function() { }
}
});
//Define property
Object.defineProperty(MyElementProto,'prop1', {
get:function() {
return //
},
set:function(){
console.log('property change');//do something
}
});
//Define attribute
MyElementProto.attributeChangedCallback = function(attr, oldVal, newVal) {
if(attr === 'attr1') {
console.log('attribute change');//do something
}
};
window.MyElement = document.registerElement('my-element', {
prototype: MyElementProto
});

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The roles of HTML, CSS and JavaScript in web development are: 1. HTML defines the web page structure, 2. CSS controls the web page style, and 3. JavaScript adds dynamic behavior. Together, they build the framework, aesthetics and interactivity of modern websites.

The future trends of HTML are semantics and web components, the future trends of CSS are CSS-in-JS and CSSHoudini, and the future trends of JavaScript are WebAssembly and Serverless. 1. HTML semantics improve accessibility and SEO effects, and Web components improve development efficiency, but attention should be paid to browser compatibility. 2. CSS-in-JS enhances style management flexibility but may increase file size. CSSHoudini allows direct operation of CSS rendering. 3.WebAssembly optimizes browser application performance but has a steep learning curve, and Serverless simplifies development but requires optimization of cold start problems.

The future of HTML is full of infinite possibilities. 1) New features and standards will include more semantic tags and the popularity of WebComponents. 2) The web design trend will continue to develop towards responsive and accessible design. 3) Performance optimization will improve the user experience through responsive image loading and lazy loading technologies.

The roles of HTML, CSS and JavaScript in web development are: HTML is responsible for content structure, CSS is responsible for style, and JavaScript is responsible for dynamic behavior. 1. HTML defines the web page structure and content through tags to ensure semantics. 2. CSS controls the web page style through selectors and attributes to make it beautiful and easy to read. 3. JavaScript controls web page behavior through scripts to achieve dynamic and interactive functions.

HTML is the cornerstone of building web page structure. 1. HTML defines the content structure and semantics, and uses, etc. tags. 2. Provide semantic markers, such as, etc., to improve SEO effect. 3. To realize user interaction through tags, pay attention to form verification. 4. Use advanced elements such as, combined with JavaScript to achieve dynamic effects. 5. Common errors include unclosed labels and unquoted attribute values, and verification tools are required. 6. Optimization strategies include reducing HTTP requests, compressing HTML, using semantic tags, etc.

HTML, CSS and JavaScript are the core technologies for building modern web pages: 1. HTML defines the web page structure, 2. CSS is responsible for the appearance of the web page, 3. JavaScript provides web page dynamics and interactivity, and they work together to create a website with a good user experience.

HTMLisnotaprogramminglanguage;itisamarkuplanguage.1)HTMLstructuresandformatswebcontentusingtags.2)ItworkswithCSSforstylingandJavaScriptforinteractivity,enhancingwebdevelopment.

HTML is a language used to build web pages, defining web page structure and content through tags and attributes. 1) HTML organizes document structure through tags, such as,. 2) The browser parses HTML to build the DOM and renders the web page. 3) New features of HTML5, such as, enhance multimedia functions. 4) Common errors include unclosed labels and unquoted attribute values. 5) Optimization suggestions include using semantic tags and reducing file size.
