Javascript 如何将html字符串拆分为DOM元素?

Javascript 如何将html字符串拆分为DOM元素?,javascript,jquery,Javascript,Jquery,我有一个html字符串 var str = '<span class="linq" onclick="ShowData(2,-1,1);">11111</span> &nbsp;»&nbsp; <span class="linq" onclick="ShowData(16,1,1);">22222</span> &nbsp;»&nbsp; 33333'; var str='11111»2222»33333'; 我

我有一个html字符串

var str = '<span class="linq" onclick="ShowData(2,-1,1);">11111</span> &nbsp;»&nbsp; <span class="linq" onclick="ShowData(16,1,1);">22222</span> &nbsp;»&nbsp; 33333';
var str='11111»2222»33333';
我需要把它分割成一个数组

arr[0] = "<span class="linq" onclick="ShowData(2,-1,1);">11111</span>";
arr[1] = "&nbsp;»&nbsp;"
arr[2] = "<span class="linq" onclick="ShowData(16,1,1);">22222</span>";
arr[3] = "&nbsp;»&nbsp; 33333'"
arr[0]=“11111”;
arr[1]=“»”
arr[2]=“22222”;
arr[3]=“33333”
我尝试使用$.parseHTML(),但我使用的是jquery 1.6,目前无法升级。 如果我使用$(str),我会得到一个数组,但没有最后一项

arr[0] = "<span class="linq" onclick="ShowData(2,-1,1);">11111</span>";
arr[1] = "&nbsp;»&nbsp;"
arr[2] = "<span class="linq" onclick="ShowData(16,1,1);">22222</span>";
arr[0]=“11111”;
arr[1]=“»”
arr[2]=“22222”;

这是一种方法:

var temp = document.createElement('div');
temp.innerHTML = str;

var arr = Array.prototype.map.call(temp.childNodes, function(node) {
    return node.nodeType === 1 
         ? node.outerHTML
         : node.nodeValue;
});
试试这个:

arr = str.match(/<.+?[a-z]>|[^<]+/g);

arr=str.match(/|[^这是肮脏的,但您可以执行以下操作

str = str + '<span></span>';
str=str+'';
现在$str应该返回您需要的所有对象以及一个无用的对象,记住不要使用最后一个返回的对象,这样您就可以了