Мы используем jQuery для генерации фрагмента XML, а затем преобразуем его в строку с помощью функции html()
.Но, как мы только что узнали, и если кто-то не знает, функция JavaScript html()
, реализованная в IE, не работает, не работает.По сути, он использует некоторые теги с заглавной буквы, «услужливо» (в нашем случае) добавляет атрибуты другим и, как правило, не делает правильных действий.
Я хотел бы использовать что-то подобное для генерации строки XMLвместо этого:
http://www.stainlessvision.com/jquery-html-vs-innerxhtml
Однако эта библиотека не будет хорошо работать с jQuery из коробки, например:
var $dummyRoot = $('<dummyroot/>'); // since html() doesn't generate the outer element
var $foo = $('<foo></foo>');
var $font = $('<font ></font >');
$foo.append($font);
$dummyRoot.append($foo);
var $s = innerXHTML($dummyRoot); // <-- Doesn't work
Я думаю, что она хочет большеW3C DOM-ish объект.
Как мне заставить jQuery общаться с этой innerXHTML()
функцией;или, альтернативно, есть ли другая функция, которую я могу использовать (может быть, что-то встроенное в jQuery или плагин jQuery)? *
Редактировать: Следить за вопросом DDaviesBrackett.У меня также есть элемент "body" в моем XML;Посмотрите, как он воспринимает стилизацию CSS (а не просто элемент).
Существует ли неписанное правило не генерировать XML внутри DOM, элементы которого имеют имена, такие как body, font, head и т. д .?
var $dummyRoot = $('<dummyroot/>');
var $foo = $('<foo></foo>');
var $body = $('<body></body>');
var $font = $('<font></font>');
$body.append($font);
$foo.append($body);
$dummyRoot.append($foo);
var $s = innerXHTML($dummyRoot[0]);
// $s equals "<foo><body bottommargin="15" leftmargin="10" rightmargin="10" topmargin="15"><font size="+0"></font></body></foo>"