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

2024-04-29

我想要实现的目标是通过传递一个大的 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/ http://api.jquery.com/jQuery/更具体的“jQuery(选择器[,上下文])”函数应该允许这样做。

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

$('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,一切都正常!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery 可以操作用 DOM 创建的临时文档吗? 的相关文章