编辑:看起来我们确定通过意见解决这个问题 - 这是通过获取.outerHTML财产的价值实现。然而,至少在使用outerHTML时,Firefox和Chrome至少会“标准化”原始源代码。例如,outerHTML的获取一个HTML元素的全(原创)文本
<div id = "a"> <!-- string is 14 characters long //-->
仍返回
<div id="a"> <!-- string is 12 characters long //-->
显然,这个问题将被视为解决,如果结果字符串的格式将匹配原始HTML源代码。啊!为什么outerHTML必须调整原始值?
---说了:---
我正在寻找一个解决方案来获得点击的HTML标记的全文。
起点的例子(注意:故意,法律但错位的格式):
<div id = "a" style ="color: blue ;">text</div>
// Returns: div
var doc = document.getElementById("id").tagName;
// Returns: array of attribute name/value pair (without = or ")
var attrs = document.getElementById("id").attributes;
我们怎么会去产生下面的文本字符串,被点击元素#A时:
<div id = "a" style= "color: blue ;">
我似乎还没有找到这个解决方案。
这是干什么用的?
最终目标是确定标签内容的任意的字符长度。假设它可以以任何可以产生可接受的HTML输出的方式进行编辑。例如,下面两种情况应该返回:
<div id=a style="color:blue"> // 28
<div id = "a" style= "color: blue ;"> // 36
计数是很容易的部分。它正在获取该标签的实际字符串,就像它出现在源代码中一样,这就是问题所在。
关于“正常化”与outerHTML,它是如何属性作品的必然结果,这是由串行化根据相关DOM片段[* HTML片段序列化算法*](HTTP://dev.w3 .ORG/HTML5/SPEC-LC /所述-end.html#HTML片段的序列化算法)。它可能与源标记很少相似。顺便说一句,“完整和原创”应该不会被“和”分开。 – RobG