首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将HTMLElement转换为字符串

如何将HTMLElement转换为字符串
EN

Stack Overflow用户
提问于 2010-03-19 10:21:50
回答 7查看 202.4K关注 0票数 95

我将在JavaScript中创建一个XML元素来与服务器端交换数据。我发现我可以用document.createElement做到这一点。但我不知道如何将其转换为字符串。浏览器中有没有什么API可以让它变得更简单?或者有没有包含此API的JS库?

编辑:我找到了浏览器XMLSerializer,它应该是序列化成字符串的正确方式。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-03-19 11:04:35

您可以通过克隆元素,将其添加到一个空的“后台”容器中,并读取容器的innerHTML来获得“get html”。

这个例子有一个可选的第二个参数。

调用document.getHTML(element,true)以包含元素的后代。

代码语言:javascript
复制
document.getHTML= function(who, deep){
    if(!who || !who.tagName) return '';
    var txt, ax, el= document.createElement("div");
    el.appendChild(who.cloneNode(false));
    txt= el.innerHTML;
    if(deep){
        ax= txt.indexOf('>')+1;
        txt= txt.substring(0, ax)+who.innerHTML+ txt.substring(ax);
    }
    el= null;
    return txt;
}
票数 44
EN

Stack Overflow用户

发布于 2010-03-19 10:32:33

element HTML属性(注意:supported by Firefox after version 11)返回整个元素的outerHTML

示例

代码语言:javascript
复制
<div id="new-element-1">Hello world.</div>

<script type="text/javascript"><!--

var element = document.getElementById("new-element-1");
var elementHtml = element.outerHTML;
// <div id="new-element-1">Hello world.</div>

--></script>

类似地,可以使用innerHTML获取给定元素中包含的超文本标记语言,或者使用innerText获取元素中的文本(sans HTML markup)。

另请参阅

  1. outerHTML - Javascript Property
  2. Javascript Reference - Elements
票数 171
EN

Stack Overflow用户

发布于 2010-03-19 10:30:03

这里有一个tagName属性,还有一个attributes属性:

代码语言:javascript
复制
var element = document.getElementById("wtv");
var openTag = "<"+element.tagName;
for (var i = 0; i < element.attributes.length; i++) {
    var attrib = element.attributes[i];
    openTag += " "+attrib.name + "=" + attrib.value;
}
openTag += ">";
alert(openTag);

另请参阅How to iterate through all attributes in an HTML element? (我做到了!)

要获得开始标记和结束标记之间的内容,如果不想遍历所有子元素,则可以使用innerHTML ...

代码语言:javascript
复制
alert(element.innerHTML);

..。然后使用tagName再次获得结束标记。

代码语言:javascript
复制
var closeTag = "</"+element.tagName+">";
alert(closeTag);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2474605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档