Javascript:我有节点(元素或文档)的DOM表示,我正在寻找它的字符串表示。例如,
var el = document.createElement("p");
el.appendChild(document.createTextNode("Test"));
应该会产生:
get_string(el) == "<p>Test</p>";
我有一种强烈的感觉,我错过了一些微不足道的简单的东西,但我就是找不到一个在IE,FF,Safari和Opera中工作的方法。因此,outerHTML不是一个选项。
发布于 2013-11-20 01:53:49
你要找的是'outerHTML',但我们需要一个后备,因为它与旧浏览器不兼容。
var getString = (function() {
var DIV = document.createElement("div");
if ('outerHTML' in DIV)
return function(node) {
return node.outerHTML;
};
return function(node) {
var div = DIV.cloneNode();
div.appendChild(node.cloneNode(true));
return div.innerHTML;
};
})();
// getString(el) == "<p>Test</p>"
你可以在这里找到我的jQuery插件:Get selected element's outer HTML
发布于 2016-03-10 18:13:50
我认为你不需要任何复杂的脚本。只需使用
get_string=(el)=>el.outerHTML;
发布于 2009-11-18 02:38:16
在FF中,您可以使用XMLSerializer
对象将XML序列化为字符串。IE给你一个节点的xml
属性。因此,您可以执行以下操作:
function xml2string(node) {
if (typeof(XMLSerializer) !== 'undefined') {
var serializer = new XMLSerializer();
return serializer.serializeToString(node);
} else if (node.xml) {
return node.xml;
}
}
https://stackoverflow.com/questions/1750815
复制相似问题