中易网

怎么将dom转换为字符串

答案:4  悬赏:40  
解决时间 2021-02-26 22:21
怎么将dom转换为字符串
最佳答案
在javascript里面动态创建标准dom对象一般使用:
var obj = document.createElement('div');
然后再给obj设置一些属性。
但是,在实际使用过程中,有些人可能会想,要是能这样创建标准的dom对象就好了
伪代码:var obj=strToDom('
Hello World!
');
那么今天的目的就是教大家怎么去实现一个这样的方法用来把字符串直接转换为标准的dom对象

start:
其实实现这样的一个转换是很简单的,这里主要是利用了一个属性innerHTML.
innerHTML,我相信大家都使用过,特别是动态往一个元素里面插内容时使用,这里我还是在介绍下innerHTML,方便于还不太熟悉的人。
innerHTML不是w3c标准,是由ie发明创造出来的,但是由于这个属性的方便性,和当时微老大的地位,其它非ie浏览器也内置了innerHTML并给出了支持。
虽然innerHTML不是w3c标准,但是却是一个事实标准,这个事实标准很重要,也就是目前主流浏览器都支持innerHTML,自然就做到了兼容多浏览器。
code:
function parseDom(arg) {
var objE = document.createElement("div");
objE.innerHTML = arg;
return objE.childNodes;
};
短短几行代码就实现了转换,我们首先用标准的方法创建一个div出来,在用innerHTML来插入一个元素,其实也就是利用浏览器自己的内核算法来实现的一个转换。在用childNodes返回出来。
这样我们就完成了一个字符串到标准dom的转换,巧妙的利用浏览器本身的算法,可以用简单少量的代码来完成大量复杂的转换,我们不用去解析字符串,而是交给浏览器自己来完成,这样既准确又无误。
使用:
var obj=parseDom('
Hello World!
');
var obj=parseDom('
Hello World!
多个也没关系');
注意:
childNodes返回的是一个类似数组的list。所以如果是一个元素,要使用这个dom需要这样使用obj[0]。如果是多个同级的dom转换,可以这样使用obj[0]、obj[1]…

dom 转字符串更简单,可以使用三方类库实现
jquery 中提供的有dom 转字符串的方法 var domStr= $("#").html();
转换原理大家可以参考一下源代码,估计应该是采用深度遍历的方式返回拼接字符串
end

到这里就结束了,在这里向大家推荐一个我自己写的js框架,上面的这个方法集成在框架里面了
使用:b$.parseDom('
Hello World!
')
全部回答
const domStr = document.querySelector('xxx').outerHTML;
可以使用eval()方法。 eval函数接收一个参数s,
如何使用dom拼接xml字符串(标准方式) . package com.my.test; import org.dom4j.document; import org.dom4j.documenthelper; import org.dom4j.element; public class xmlgroup { public static string getrquestxml(string guid, string guidpwd) { document requestdoc = documenthelper.createdocument(); element root = requestdoc.addelement("message"); element headelement = root.addelement("head"); headelement.addelement("guid").addtext(guid); element paramselement = root.addelement("body").addelement("params"); paramselement.addelement("pwd").addtext(guidpwd); paramselement.addelement("callbackurl"); return root.asxml(); } public string getrequestsearchemployeexml(string appid, string tag, string accounts) { document requestdoc = documenthelper.createdocument(); element root = requestdoc.addelement("message"); element headelement = root.addelement("head"); headelement.addelement("appid").addtext(appid); headelement.addelement("tag").addtext(tag); headelement.addelement("accounts").settext(accounts); element paramselement = root.addelement("body").addelement("params"); paramselement.addelement("condition").settext(accounts); paramselement.addelement("pagecount").settext("20"); paramselement.addelement("pagenum").settext("1"); return root.asxml(); } public static void main(string agrs[]) { //test string xml=getrquestxml("zhangyi","123"); system.out.println(xml); //test string xml2=getrquestxml("mobile","ads324sdsa4sf3w"); system.out.println(xml2); } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
永盛小吃这个地址在什么地方,我要处理点事
南方厨房装修风水要注意什么?
我三七粉吃太多了,人感觉不舒服,胸口不顺畅
定期三个月续存用本人身份证吗
车胎被划了道口子用502可以补吗
为什么黄金那么贵 感觉它没有很实在的使用价
益民茶行地址在哪,我要去那里办事
为什么那个榴莲那么难吃啊?
上海虹桥火车站到常州市有大巴吗
电脑高手SOS!新建或打开Office Word文档时,
“三频均衡”的耳机是好还是平庸
金桥广告(善国北路自来水公司南邻)地址在什么
oracle的RANK函数Sybase有对应的吗
鲁记砂锅凉皮在什么地方啊,我要过去处理事情
坏人的帮凶。
推荐资讯
回龙观 哪里牛肉面最好吃?
含矗字的成语或词语
网络红人排行榜第一 网络男生红人排行榜 网络
()为人民利益而死()比泰山还重。(填关联
Intel最新CPU和主板不能装Win7怎么办
"鱼"字旁边有个"单"是什么字"鱼单"
怎么在基于对话框的vc下向flexgrid控件中添加
恒通汽车修理厂在哪里啊,我有事要去这个地方
新通力学车超市(报名处)在什么地方啊,我要过
安利乐纤一盒能吃几天
长江路/衡山路(路口)怎么去啊,有知道地址的
视界眼镜店怎么去啊,有知道地址的么
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?