A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.在js中我们要动态的创建标准DOM对象一般使用:var obj= document.createElement('div');但是如果在ajax请求时返回的是一个带有标签的字符串,如:data:[["<span id="0">aaa</span>",'小明',‘28’]],这时获取到的data[0][0],是一个字符串,我们获取不到id。现在又一种方法可以解决:

1.1  js:

主要使用innerHTML,innerHTML: 动态的往一个元素中插内容时使用,


innerHTML不是w3c标准,是由ie发明创造出来的,但是由于这个属性的方便性,和当时微老大的地位,其它非ie浏览器也内置了innerHTML并给出了支持。

虽然innerHTML不是w3c标准,但是却是一个事实标准,这个事实标准很重要,也就是目前主流浏览器都支持innerHTML,自然就做到了兼容多浏览器。


function parseDom(arg) {

   var objE = document.createElement("div");

   objE.innerHTML = arg;

   return objE.childNodes;

};

我们首先用标准的方法创建一个div出来,在用innerHTML来插入一个元素,其实也就是利用浏览器自己的内核算法来实现的一个转换。在用childNodes返回出来。我们不用去解析字符串,而是交给浏览器自己来完成,这样既准确又无误。

childNodes返回的是一个类似数组的list。所以如果是一个元素,要使用这个dom需要这样使用obj[0]。如果是多个同级的dom转换,可以这样使用obj[0]、obj[1]…

1.2 jq

$(objE )就可以,可以$(item[0]).attr('id');

2.DOM转为字符串更加简单,可以使用三方类库来实现

jquery 中提供的有dom 转字符串的方法 var domStr= $("#").html();


---------------------
【转载,仅作分享,侵删】
作者:努力_才幸福
原文:https://blog.csdn.net/weixin_38098192/article/details/80235280
版权声明:本文为博主原创文章,转载请附上博文链接!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马