对空XML元素的jquery append()方法

时间:2010-05-26 04:33:12

标签: jquery xml dom

这可能只是语法错误,但我正在尝试从头开始创建一个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 />),直到它们有了孩子。但这只是猜测。

1 个答案:

答案 0 :(得分:1)

您无法使用jquery构建非HTML节点。这意味着$('<test>X</test>')无效,但$('<span>X</span>')会有效。 (您可以使用jQuery来读取XML文档,并查找$('test')之类的内容,但构建它们是另一回事。)这是由于jQuery如何在内部创建这些元素。

修改

以下是支持我的声明的文档:http://api.jquery.com/jQuery/#jQuery2

  

即时创建的HTML字符串。   请注意,这解析HTML,而不是XML。