Метод jquery append () для пустого элемента XML - PullRequest
0 голосов
/ 26 мая 2010

Это может быть просто синтаксической ошибкой, но я пытаюсь создать объект 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 Ответ

1 голос
/ 26 мая 2010

Вы не можете создать не HTML-узел, используя jquery. Это означает, что $('<test>X</test>') не сработает, но $('<span>X</span>') сработает. (Вы можете использовать jQuery для чтения XML-документа и искать такие вещи, как $('test'), но создание их - это другой вопрос.) Это связано с тем, как jQuery создает эти элементы внутри.

EDIT

Вот документация, подтверждающая мою претензию: http://api.jquery.com/jQuery/#jQuery2

Строка HTML для создания на лету. Обратите внимание, что это анализирует HTML, а не XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...