这可能只是语法错误,但我正在尝试从头开始创建一个Document对象,从document.implementation.createDocument()
开始,然后使用jquery的append()
方法添加元素。但它并没有附加:
var myDoc = document.implementation.createDocument("", 'stuff', null);
$("stuff",myDoc).attr("test","tested");
$("stuff",myDoc).append("<test>A</test>");
$("<test>B</test>").appendTo("stuff",soapEnv);
var s = new XMLSerializer();
alert(s.serializeToString(soapEnv));
这应输出:
<stuff test="tested">
<test>A</test>
<test>B</test>
</stuff>
但它输出:
<stuff test="tested" />
所以选择器似乎正在工作,而不是方法。我唯一的猜测是这个方法没有说明元素是空的(<stuff />
),直到它们有了孩子。但这只是猜测。
答案 0 :(得分:1)
您无法使用jquery构建非HTML节点。这意味着$('<test>X</test>')
无效,但$('<span>X</span>')
会有效。 (您可以使用jQuery来读取XML文档,并查找$('test')
之类的内容,但构建它们是另一回事。)这是由于jQuery如何在内部创建这些元素。
修改强>
以下是支持我的声明的文档:http://api.jquery.com/jQuery/#jQuery2
即时创建的HTML字符串。 请注意,这解析HTML,而不是XML。