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

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

我需要将其拆分为一个数组。

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

最佳答案

这是一种方法:

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

关于javascript - 如何将 html 字符串拆分为 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32355637/

相关文章:

javascript - 单击子菜单时在父级上旋转 div

javascript - 带有方形单元格的 HTML 表格适合屏幕高度

javascript - 自动化网络分析测试过程

JQuery 允许函数调用但阻止回车键回发

javascript - 使用jquery,如果我单击一个文本框,如何清除表单上的所有文本框?

javascript - useEffect 在 useFrameApi onReady 事件中不起作用

javascript - Angular ng-repeat,元素外的内容

Rails Helper 中的 Javascript、Jquery

javascript - 使用 JavaScript 和 jQuery 获取超链接字段/列以将 SharePoint 列表中的数据显示为超链接

jQuery 第 n 个子级