微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – jquery可以操作用DOM创建的临时文档吗?

我想要实现的是通过传递一个大的html字符串来使用jquery来操作使用DOM创建的文档.请考虑以下示例:

var doctype = document.implementation.createDocumentType( 'html', '', '');
var dom = document.implementation.createDocument('', 'html', doctype);
dom.documentElement.innerHTML = '<head><head><title>A title</title></head><body><div id="test">This is another div</div></body>'; 

这将在dom中创建一个新文档,并提供内容.现在我想使用jquery追加让我们说现有div中的div.

$('#test',dom).append('<div> A second div</div>');
console.log(dom);

当我在控制台中打印结果时,似乎’dom’的innerHTML没有改变.从jquery的api文档中,http://api.jquery.com/jQuery/更具体的“jQuery(selector [,context])”函数应该允许这个.

由于有人可能会争论使用控制台进行调试,因此我在下面提供了另一部分不起作用的代码

$('body').append($('#test',dom));

在chrome和firefox中测试过,它不能与最新的jquery库一起使用.

解决方法:

通过更改构造函数并使用下面的行

var dom = document.implementation.createHTMLDocument("Test");

而不是最初引入的两条线

var doctype = document.implementation.createDocumentType( 'html', '', '');
var dom = document.implementation.createDocument('', 'html', doctype);

一切正常,即使直接设置innerHTML!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐