通常开发人员习惯将id,src,alt等叫做这个元素的"属性"。我们将其称为"元素属性"。但是在解析成 DOM 对象时,实际浏览器最后会将标签元素解析成"DOM 对象",并且将元素的"元素属性"存储为"DOM 属性",两者是有区别的。
甚至有些"元素属性"和"DOM 属性"的名称都不一样,比如上面的元素属性 class,转换为 DOM 属性后对应 className。
牢记,在 javascript 中我们可以直接获取或设置"DOM 属性":
所以如果要设置元素的 CSS 样式类,要使用的是 DOM 属性"className"而不是元素属性"class"。 --------------------------------------------------------------------------------
在 jQuery 提供了each()函数用于遍历 jQuery 包装集,其中的this指针是一个 DOM 对象,所以我们可以应用这一点配合原生 javascript 来操作元素的 DOM 属性:
我们可以使用 javascript 中的getAttribute和setAttribute来操作元素的"元素属性"。在 jQuery 中给你提供了attr()包装集函数,能够同时操作包装集中所有元素的属性:
虽然我们可以使用removeAttr(name)删除元素属性,但是对应的 DOM 属性是不会被删除的,只会影响 DOM 属性的值.比如将一个input元素的readonly元素属性去掉,会导致对应的 DOM 属性变成false(即input变成可编辑状态).
注意addClass(class)和removeClass(classes)的参数可以一次传入多个 css 类,用空格分割。removeClass 方法的参数可选,如果不传入参数则移除全部 CSS 类。
同样当我们想要修改元素的具体某一个 CSS 样式,即修改元素属性"style"时,jQuery 也提供了相应的方法: