JS中的特性(attr)和属性(prop)

 HTML代码:

 js代码:

var input = document.getElementsByTagName("input")[0];

特性:基于setAttribute 和 getAttribute(返回值是字符串,不存在返回null),设置特性会映射到标签上,

jQuery对应的是 $(".demo").attr("id", "test")赋值,   $(".demo").attr("class")取值

属性:el.value  el["value"],返回合法js类型,不存在返回undefined。

 

⚠️针对标签中存在有checked、disabled、selected的获取值问题:

原生js中使用input.getAttribute("checked") 获取,jQuery使用$("input").attr("checked") 获取的值不是true或者false,

input.checked 和 $("input").prop("checked") 取值得到的是true或false。

HTML特性映射为DOM 属性时,只映射特性,非特性不映射。

input.value 的同步是单向的,只是attribute--->property,当修改特性时,属性也会被修改;但是修改属性后,特性却还是原值。

当我们使用data-开头的特性的时候,会映射到DOM的dataset属性,中划线会变成驼峰格式。

  • input.setAttribute("value","modify"); 

  1. HTML 中元素的行间样式会变;

你可能感兴趣的:(JavaScript)