javascript - 有没有办法将实际的 DOM 写入字符串

标签 javascript html dom

我有一个 html 文档

<html>
<head></head>
<body>
<form>
<input type="text" value="" />
</form>
<input type="button" id="doit" value="do it"/>
    <!-- jQuery -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
        </script>            
        <script type="text/javascript">
        $(document).ready(function() {
            $("#doit").click(function(){
            var dom = document.documentElement.innerHTML;
            alert(dom);
            });
        });
        </script>
</body>
</html>

如果我编辑文本字段,其值仍然是警报中的原始空白值...为什么?以及如何查看字符串中的实际 DOM?

最佳答案

您需要使用当前值显式设置每个属性:http://jsfiddle.net/GW8eU/ .

$("#doit").click(function(){
    $('*').each(function() {
        var $this = $(this);
        for(var i = 0; i < this.attributes.length; i++) {
            try {
                var t = this.attributes[i];
                $this.attr(t.name, $this.prop(t.name));
            } catch(e) {}
        };
    });
    var dom = document.documentElement.innerHTML;
    alert(dom);
});

它相当脏,我没有看到将 DOM 输出到字符串背后的真正原理,但它似乎回答了你的问题。

它脏的原因之一是 try block 是必不可少的,否则你将设置 inputtype 属性> 这是不可变的。我非常确定这也不适用于其他特殊属性,但对于 inputvalue 来说,它工作得很好。

因此我仍然想知道想要 DOM 作为字符串的原因是什么;可能有一个更优雅的解决方案。

关于javascript - 有没有办法将实际的 DOM 写入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6776115/

相关文章:

javascript - 如何从字符串中执行JS语句?

javascript - 如果我有一串 HTML 代码,如何使用 JQuery 来解析它?

javascript - 从网站解析html代码并将其显示在java元素上

html - Colspan 扰乱了表格布局

javascript - Javascript 可以原生连接到 MongoDB 吗?

javascript - 通过作为参数传递和全局变量访问函数内部变量之间的区别?

html - 我无法垂直对齐 CSS 表格

javascript document.innerHTML 设置整个文档的内容

javascript - 使用原型(prototype)选择器获取 HTMLElement

javascript - 两次追加 DOM 元素 (jQuery)