开发者

jquery append() method on empty XML element

This could just be a syntax error, but I'm trying to create a Document object from scratch, starting with document.implementation.createDocument() and then using jquery's append() method to add the elements. But it's not appending:

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.seria开发者_StackOverflow中文版lizeToString(soapEnv));

This should output:

<stuff test="tested">
    <test>A</test>
    <test>B</test>
</stuff>

But instead it outputs:

<stuff test="tested" />

So the selector seems to be working, just not the method. My only guess is the method doesn't account for the fact that elements are empty (<stuff />) until they have children. But that's just a guess.


You can't construct a non-HTML node using jquery. This means $('<test>X</test>') isn't going to work, but $('<span>X</span>') will. (You can use jQuery to read an XML document, and look for things like $('test'), but constructing them is another matter.) This is due to how jQuery creates these elements internally.

EDIT

Here is the documentation supporting my claim: http://api.jquery.com/jQuery/#jQuery2

A string of HTML to create on the fly. Note that this parses HTML, not XML.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜