There are a lot of answers on the internet about their two differences. Here to talk about my experience, my experience is very simple:
- For HTML elements that have intrinsic properties , use the prop method when processing.
- For HTML elements our own custom DOM properties , when processing, use the attr method.
The above description may be a little vague, as you can see in a few examples.
href Target class= "BTN" > Baidu </a>
In this example, the Dom attribute of the <a> element has "href, target, and class", which is the property of the <a> element itself , and the inclusion of these attributes in the standard. Or a property that can be intelligently prompted in the IDE, these are called intrinsic properties. The prop method is recommended when working with these properties.
href ID Action= "delete" > Delete </a>
In this example, the DOM attribute of the <a> element has "href, id, and action", and it is clear that the first two are intrinsic properties, and the next "action" attribute is our own custom,<a> element itself without this attribute. This is a custom DOM property. The attr method is recommended when working with these properties. When you use the Prop method to take values and set property values, the undefined value is returned.
One more example:
ID type ID type checked= "Checked"/> is visible
For elements like checkbox,radio and select , the selected attribute corresponds to "checked" and "selected", which are also intrinsic properties , so you need to use prop method to get the correct results.
$ ("#chk1"). prop ("checked") = = false$ ("#chk2"). prop ("checked") = = True
If the attr method is used above, it will appear:
$ ("#chk1"). attr ("checked") = = undefined$ ("#chk2"). attr ("checked") = = "Checked"
Day 82nd: The difference between prop () and attr () in jquery