我想要实现的是使用jquery通过传递一个大的html字符串来操纵使用DOM创建的文档。请考虑以下示例: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库工作。
感谢您的建议,但从我的情况来看,使用整个字符串创建文档非常重要。单独创建每个元素非常耗时,尤其是在这是获得响应的情况下。另外,我很好奇的是为什么设置innerHTML不起作用? – zabetak 2013-03-18 17:26:08