欢迎各位兄弟 发布技术文章
这里的技术是共享的
前言:
在javascript里面动态创建标准dom对象一般使用:
var obj = document.createElement('div');
然后再给obj设置一些属性。
但是,在实际使用过程中,有些人可能会想,要是能这样创建标准的dom对象就好了
伪代码:var obj=strToDom('<div id="div_1" class="div1">Hello World!</div>');
那么今天的目的就是教大家怎么去实现一个这样的方法用来把字符串直接转换为标准的dom对象
start:
其实实现这样的一个转换是很简单的,这里主要是利用了一个属性innerHTML.
innerHTML,我相信大家都使用过,特别是动态往一个元素里面插内容时使用,这里我还是在介绍下innerHTML,方便于还不太熟悉的人。
innerHTML不是w3c标准,是由ie发明创造出来的,但是由于这个属性的方便性,和当时微老大的地位,其它非ie浏览器也内置了innerHTML并给出了支持。
虽然innerHTML不是w3c标准,但是却是一个事实标准,这个事实标准很重要,也就是目前主流浏览器都支持innerHTML,自然就做到了兼容多浏览器。
code:
短短几行代码就实现了转换,我们首先用标准的方法创建一个div出来,在用innerHTML来插入一个元素,其实也就是利用浏览器自己的内核算法来实现的一个转换。在用childNodes返回出来。
这样我们就完成了一个字符串到标准dom的转换,巧妙的利用浏览器本身的算法,可以用简单少量的代码来完成大量复杂的转换,我们不用去解析字符串,而是交给浏览器自己来完成,这样既准确又无误。
使用:
注意:
childNodes返回的是一个类似数组的list。所以如果是一个元素,要使用这个dom需要这样使用obj[0]。如果是多个同级的dom转换,可以这样使用obj[0]、obj[1]…
end
到这里就结束了,在这里向大家推荐一个我自己写的js框架,上面的这个方法集成在框架里面了
使用:b$.parseDom('<div id="div_1" class="div1">Hello World!</div>')
bBank 开源Javascript框架
来自 https://www.xp.cn/b.php/23210.html
将字符串识别为dom对象使用方法
var nodelist = parseToDOM("<b>hello world</b>");
使用参数
str : HTML文本字符串
将字符串识别为dom对象实例
function parseToDOM(str){ var div = document.createElement("div"); if(typeof str == "string") div.innerHTML = str; return div.childNodes; }
将dom对象存储到localStorage
localStorage.setItem("domStr", nodeToStr(document.createElement("div")));
从本地存储获取dom
let str = localStorage.getItem("domStr");
补充:dom对象转为字符串更加简单,可以使用三方类库来实现。
jquery 中提供的有dom 转字符串的方法
var domStr= $("#").html();
以上就是JavaScript中js将字符串识别为dom对象的方法实例,希望能解决你的问题哦~更多JavaScript学习推荐:JavaScript教程。
来自 https://www.py.cn/web/js/23102.html