Mat*_*own 15 javascript arrays string tostring
我希望能够做的是从Javascript HTMLElement对象创建一个字符串.例如:
var day = document.createElement("div");
day.className = "day";
day.textContent = "Random Text";
Run Code Online (Sandbox Code Playgroud)
现在我们创建day
HTMLDivElement对象是否可以将其打印为字符串?例如
<div class="day">Random Text</div>
Run Code Online (Sandbox Code Playgroud)
BGe*_*sen 22
Gump的包装器的变体,因为他的实现将目标节点提升出文档.
function nodeToString ( node ) {
var tmpNode = document.createElement( "div" );
tmpNode.appendChild( node.cloneNode( true ) );
var str = tmpNode.innerHTML;
tmpNode = node = null; // prevent memory leaks in IE
return str;
}
Run Code Online (Sandbox Code Playgroud)
在屏幕上打印结果字符串(re:escaped)
var escapedStr = nodeToString( node ).replace( "<" , "<" ).replace( ">" , ">");
outputNode.innerHTML += escapedStr;
Run Code Online (Sandbox Code Playgroud)
注意,像"class","id"等属性正确地进行字符串化是值得怀疑的.
Chr*_*ang 16
你可以使用这个函数(取自pure.js)
function outerHTML(node){
return node.outerHTML || new XMLSerializer().serializeToString(node);
}
Run Code Online (Sandbox Code Playgroud)
自上次回答以来已经过去了几年。所以这里有一个更简单的方法:
我发现.outerHTML
现在所有主要浏览器都支持它(参见caniuse)。您可以使用它轻松获取 JS 元素的 HTML:
// Create a sample HTMLDivElement
var Day = document.createElement("div");
Day.className = "day";
Day.textContent = "Random Text";
// Log the element's HTML to the console
console.log(Day.outerHTML)
Run Code Online (Sandbox Code Playgroud)
这将记录: <div class="day">Random Text</div>
您可以将该元素包装到另一个元素中并innerHTML
在其上使用:
var wrapper = document.createElement("div");
wrapper.appendChild(day);
var str = wrapper.innerHTML;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39198 次 |
最近记录: |