2015-09-02 92 views
2

我有一個HTML字符串如何將html字符串拆分爲DOM元素?

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'; 

我需要將其拆分爲數組。

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'" 

我試圖使用$ .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>"; 

回答

3

這是做這件事的一種方法:

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; 
}); 
0

試試這個:

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

它受到一些測試第一,但。

2

那是骯髒的,但你可以做這樣的事情

str = str + '<span></span>'; 

現在$海峽應返回你所需要的所有對象加一個無用的對象,切記不要用最後一個對象返回,你都OK