通过哪些方法可以获取页面的html元素,干货 | JS中你必须知道的8种获取元素属性方法...

原标题:干货 | JS中你必须知道的8种获取元素属性方法

在Web前端开发中经常用到的技术:获取元素属性的一系列方法【innerHTML、outerHTML、innerText 、outerText、value、text、html,val】。

这些方法,大家应该用过,如果让你说出它们的一些区别和联系,能答得上来吗?

15cb42e9aed70d88476cf9de48dd5ea9.png

innerHTML 属性

在读模式下,innerHTML属性返回与调用元素的所有子节点(包括元素、注释和文本节点)对应的 HTML 标记。

在写模式下,innerHTML 会根据指定的值创建新的 DOM 树,然后用这个 DOM 树完全替换调用元素原先的所有子节点。下面是一个例子:

2d7c514e6d5dd53ae7a6b768cbbf213e.png

对于上面的元素来说,它的 innerHTML 属性会返回如下字符串。

ea44a31bdc526d7b7e8f6bdd07c58891.png

outerHTML 属性

在读模式下,outerHTML 返回调用它的元素及所有子节点的 HTML 标签。在写模式下,outerHTML 会根据指定的 HTML 字符串创建新的 DOM 子树完全替换调用元素。下面是一个例子。

43b1985480094862f4138eeb8f88db40.png

如果在元素上调用 outerHTML,会返回与上面相同的代码,包括本身。

使用 outerHTML 属性以下面这种方式设置值:

这行代码完成的操作与下面这些 DOM 脚本代码一样:

f88e4e56b2138c18be956bcead920235.png

结果,就是新创建的元素会取代 DOM 树中的元素。

replaceChild 方法用新节点替换某个子节点。

语法:

innerText 属性

通过 innerText 属性可以操作元素中包含的所有文本内容,包括子文档树中的文本。在通过 innerText 读取值时,它会按照由浅入深的顺序,将子文档树中的所有文本拼接起来。

在通过 innerText 写入值时,结果会删除元素的所有子节点,插入包含相应文本值的文本节点。下面是一个例子:

91765eefb67ddf4a94257a50439e3099.png

对于这个例子中的元素而言,其中 innerText 属性会返回下列字符串:

9956141e5d73325341081994df9f9bb3.png

使用 innerText 属性设置这个元素内容,则只需一行代码:

执行这行代码后,页面的 HTML 代码就会变成如下所示:

设置 innerText 属性移除了先前存在的所有子节点,完全改变了 DOM 树。

设置 innerText 永远只会生成当前节点的一个子文本节点,而为了确保只生成一个字文本节点,就必须要对文本进行 HTML 编码。利用这一点,可以通过 innerText 属性过滤掉 HTML 标签。方法是将 innerText 设置等于 innerText,这样就可以去掉所有 HTML 标签,比如:

执行这行代码后,就用原来的文本内容替换了容器元素中的所有内容(包括子节点,因而也就去掉了 HTML 标签)。举个栗子:

输出:

29e7ad2636856a4c582df1a63becdfaf.png

outerText 属性

除了作用范围扩大到了包含 调用它的节点之外,outerText 与innerText 基本上没有多大区别。

在读取文本值时,outerText 与 innerText 的结果完全一样。但在写模式下,outerText 就完全不同了:outerText 不只是替换调用它的元素的子节点,而是会替换整个元素(包括子节点)。比如:

这行代码实际上相当于如下两行代码:

de0bcdf4d41802c2537da3e6e008b8fa.png

本质上,新的文本节点会完全取代调用 outerText 的元素。此后,该元素就从文档中被删除,无法访问。

value 属性

属性可设置或返回密码域的默认值。获取文本框的值。

text:设置或者获取所选元素的文本内容

(1) 无参text:

取得所有匹配元素的内容。结果是由所有匹配元素包含的文本内容组合起来的文本。返回的是一个String。

169b4c2c8f525d100dd1e9a1e37cc27f.png

(2) 有参text(val):

设置所有匹配元素的文本内容,与 html 类似, 但将编码 HTML (将 "" 替换成相应的HTML实体).返回一个jquery对象。

61c87071085e2105e944083e45594482.png

html:设置或者获取所选元素的内容

(1) 无参html:

取得第一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档,返回的是一个String。

30286c07d110634febb0276fcd298d0f.png

(2) 有参html(val):

设置每一个匹配元素的html内容。这个函数不能用于XML文档。但可以用于XHTML文档。返回一个jquery对象。

f6ca84297108d57307e9000376c11d50.png

val方法

主要用于获取表单元素的值如input, select 和 textarea。当在一个空集合上调用,它返回undefined;

(1) 无参 val :

获取匹配的元素集合中第一个元素的当前值。例子:

HTML代码:

c83ce39fcf9053b2217905f9a825d690.png

控制台输出:

(2) 有参val(val):

设置每一个匹配元素的值。返回一个jquery对象。

5b41212c39cdcae8b7acadbd5efbedb8.png

人工智能物联网班火热招生中

我们的课程从 入门到实战项目 ,让你 快速掌握 企业所需 前沿技术 ,职坐标 助你在6个月 挑战高薪入职。

职坐标在线∣一个有用的公众号

戳 “阅读原文”一起来充电吧!

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值