随着web的技术突飞猛进的发展。HTML5 ES6等新技术的发展,与此同时DOM等标准也在悄悄的进步,各大浏览器也在悄悄的发展适配新的属性和方法,今天我们来看看Javascript新的DOM的方法

before(),after(),prepend(),append()等新增DOM

before()

before()是个ChildNode方法,也就是节点方法。节点方法对应于元素方法。区别在于,节点可以直接是文本节点,甚至注释等。但是,元素必须要有HTML标签。

因此,before()的参数既可以是DOM元素,也可以是DOM节点,甚至可以直接字符内容;

语法如下

void ChildNode.before((节点或字符串)... 其它更多节点);

DOM案例

1   2  3   4   5 Document  6   7   8   9 

图片前面插入文字“美女:”

 10  11  12  13 

javascript插入before(),after()新DOM方法_第1张图片

这是插入DOM节点,那可不可以指接拆入纯文本呢O(∩_∩) 淡然可以,我们再看一下纯文本代码

javascript插入before(),after()新DOM方法_第2张图片

javascript插入before(),after()新DOM方法_第3张图片

显然是可以的,那插入HTML字符串呢

  Document  

图片前面插入文字“美女:”

javascript插入before(),after()新DOM方法_第4张图片

可以看吃是不可以直接插入HTML字符串的,有人要疑问了,我非要在图片前面插入HTML字符内容怎么办

可以使用兼容性更好的insertAdjacentHTML() DOM方法,使用示意如下:

document.getElementById('img').insertAdjacentHTML('beforebegin', '美女:');

语法如下:

element.insertAdjacentHTML(position, html);

javascript插入before(),after()新DOM方法_第5张图片

after()

after跟before()语法特性兼容性都是一一对应的,差别就在于语义上,一个是在前面插入,一个是在后面插入。,这里就不更详细的解释了

重点

after()与before这些新的方法有兼容性,兼容版本如下图所示

javascript插入before(),after()新DOM方法_第6张图片

如果非要再旧版浏览器使用新的API属性怎么办呢,我们需要引入一段代码来让老式浏览器兼容

javascript插入before(),after()新DOM方法_第7张图片

注意,上面的polyfill 并不支持IE8及其以下浏览器。 API只能在至少兼容到IE9浏览器的项目使用。

结束语

我们如今,原生的DOM API借鉴jQuery的优点,也整出了很多简单遍历的API方法;如果我们再粘贴一些polyfill JS搞定兼容性问题;再配合ES5很多数据处理方法;DOM leave 3的事件处理等。

基本上就没有需要使用jQuery的理由了,省了资源加载,提高了代码性能,

所以,基本上,已经不可逆地,在不久将来,不出几年,行业会兴起原生DOM API,原生JS开发前端应用的小风尚,jQuery会越来越不被人提起,完成其历史使命,日后可以领取个终身成就奖。


>如果有兴趣学习web前端的小伙伴,可以来我的web前端学习裙哦5753,08719可以免费领取精品的web前端学习教程一份哦!

javascript插入before(),after()新DOM方法_第8张图片