Javascript 如何将html字符串拆分为DOM元素?
我有一个html字符串Javascript 如何将html字符串拆分为DOM元素?,javascript,jquery,Javascript,Jquery,我有一个html字符串 var str = '<span class="linq" onclick="ShowData(2,-1,1);">11111</span> » <span class="linq" onclick="ShowData(16,1,1);">22222</span> » 33333'; var str='11111»2222»33333'; 我
var str = '<span class="linq" onclick="ShowData(2,-1,1);">11111</span> » <span class="linq" onclick="ShowData(16,1,1);">22222</span> » 33333';
var str='11111»2222»33333';
我需要把它分割成一个数组
arr[0] = "<span class="linq" onclick="ShowData(2,-1,1);">11111</span>";
arr[1] = " » "
arr[2] = "<span class="linq" onclick="ShowData(16,1,1);">22222</span>";
arr[3] = " » 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] = " » "
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应该返回您需要的所有对象以及一个无用的对象,记住不要使用最后一个返回的对象,这样您就可以了