DOM-获取标签文本及属性操作

mac2025-04-10  4

标签的内容属性

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】

样式操作(style属性)

标签不仅可以通过class属性操作样式,还可以通过style属性操作样式。同样的DOM对象可以通过className操作样式,也可以通过style属性操作样式。

//1. style属性是一个对象,里面存储了所有行内样式对应的键值对。 //2. 如果样式的名字带了-,比如background-color,到了style对象中,变成了驼峰命名法,backgroundColor(因为-在js中不是一个合法的标识符) //3. style属性只能获取和设置行内样式,在类样式中定义的样式通过style获取不到。

style设置的样式是行内样式,因此优先级要高于className设置的样式

document常用属性:

1. document.body : body比较常用,并且在页面中时唯一的,因此可以使用document.body直接获取。 2. document.documentElement : 可以获取html元素 3. document.head : 可以直接获取head元素 4. document.title : 可以直接获取title的文本

获取元素的方法

根据id获取

//参数:元素的id //返回值:一个元素,如果id不存在,返回null document.getElementById("id");

根据标签名获取

//参数:标签名 //返回值:伪数组,无论有几个元素,返回都是伪数组 document.getElementsByTagName("tagName"); box.getElementsByTagName("tagName");

根据类名获取

//参数:字符串类型的类名 //返回值:伪数组 document.getElementsByClassName("class")

注意:这个方法ie678不支持

根据name获取

//只适用于表单元素 var ps = document.getElementsByName("aa");

根据css选择器获取

//参数:是一个css选择器,, 如果是类选择器, .demo 如果是id选择器: #aa //返回值:只会返回一个对象,如果有很多个,会返回第一个 document.querySelector(); //参数:是一个css选择器 //返回值:会返回伪数组,不管有多少个,都会返回伪数组 document.querySelectorAll();

标签的自定义属性

我们之前讨论的属性,都是HTML规范中,标签本来就有的属性,对于标签自定义的一些属性,比较特殊。

在html页面中,定义一个自定义属性

<div id="box" aa="bb"></div>

在对应的DOM对象中是不存在的,在DOM对象中只会存在固定的那些属性。

var box = document.getElementById("box"); console.log(box.aa);//undefined

attribute方法

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);
最新回复(0)