innerText和innerHTML属性都是用来获取和设置标签的内容的。但是二者还是有区别的。
innerHTML可以用于获取和设置标签的所有内容,包括标签和文本内容
// innerHTML:内部的HTML // 获取标签内容的时候,不管标签还是文本,都能获取到 // innerHTML设置内容的时候,覆盖原来内容,标签也能生效,浏览器能解析这个标签。innerText可以用于获取和设置标签的文本内容,会丢弃掉标签
//innerText:内部文本 // 获取标签内容的时候,只会获取文本,标签扔掉了 // 设置标签内容的时候,覆盖原来内容,对标签进行转义(目的:把标签直接当文本来用)二者的区别:
innerHTML能够识别标签,标签能够生效innerText只识别文本,标签会被转义常见的表单属性有:disabled、type、value、checked、selected
对于disabled、checked、selected三个属性来说,比较特殊。
在标签中,只要指定了disabled属性,无论有值没值,都代表这个input是被禁用的。注意,标签的disabled仅仅是默认值。 在DOM对象中,disabled的属性是一个布尔类型的属性,值只有true或者false获得焦点与失去焦点案例
onfocus:获得焦点时触发 onblur:失去焦点时触发【案例:表格全选案例.html】
标签不仅可以通过class属性操作样式,还可以通过style属性操作样式。同样的DOM对象可以通过className操作样式,也可以通过style属性操作样式。
//1. style属性是一个对象,里面存储了所有行内样式对应的键值对。 //2. 如果样式的名字带了-,比如background-color,到了style对象中,变成了驼峰命名法,backgroundColor(因为-在js中不是一个合法的标识符) //3. style属性只能获取和设置行内样式,在类样式中定义的样式通过style获取不到。style设置的样式是行内样式,因此优先级要高于className设置的样式
注意:这个方法ie678不支持
我们之前讨论的属性,都是HTML规范中,标签本来就有的属性,对于标签自定义的一些属性,比较特殊。
在html页面中,定义一个自定义属性
<div id="box" aa="bb"></div>在对应的DOM对象中是不存在的,在DOM对象中只会存在固定的那些属性。
var box = document.getElementById("box"); console.log(box.aa);//undefinedattribute方法
attribute系列方法用于设置标签的属性,不管是自定义的还是固有的属性。 jquery中通过attr()和prop()拿属性,prop()适合拿布尔值类型属性,比如表单的checked、disabled等等
jquery中通过data()拿data-开头的属性。<div calss="box" data-id="2"></div>
//获取标签的属性 box.getAttribute(name); //设置标签的属性 box.setAttribute(name, value); //移除标签的属性 box.removeAttribute(name);