Эффективный способ скопировать коллекцию узлов, обработать их, а затем сериализовать?

Сначала я думал, что регулярное выражение для удаления YUI3 classNames (или целых атрибутов класса) и атрибутов id из сериализованной строки DOM было достаточно разумным подходом - но теперь я не уверен, учитывая различные предупреждения об использовании регулярного выражения в HTML.

Я играю с идеей сделать копию рассматриваемой структуры DOM, выполнив:

var nodeStructure = Y.one('#wrap').all('*'); // A YUI3 NodeList

// Remove unwanted classNames.. I'd need to maintain a list of them to remove :/
nodeStructure.removeClass('unwantedClassName');

а потом:

// I believe this can be done on a NodeList collection...
nodeStructure.removeAttribute('id');

Я не совсем уверен в том, что мне нужно сделать, чтобы "скопировать" коллекцию узлов в любом случае, так как я на самом деле не хочу делать вышеизложенное для моей живой разметки, поскольку она только сохраняется, а не "закрывается" или "выход", пользователь может продолжать изменять разметку, а затем снова сохранять. Вышесказанное не делает копию, я знаю.

Это эффективно? Есть ли лучший способ "санировать" мою живую разметку дополнений фреймворка к DOM (и, возможно, другие вещи позже) перед сохранением в виде строки? Если это хороший подход, как безопасно скопировать мою коллекцию узлов для безопасной очистки?

Спасибо! d

(Это сообщение о регулярных выражениях, касающееся моей первой идеи очистить сериализованную структуру DOM: Безопасные регулярные выражения для очистки сериализованного DOM?, этот вопрос содержит образец HTML, если вы этого хотите)

1 ответ

Решение

"Я не совсем уверен, что мне нужно сделать, чтобы" скопировать "коллекцию узлов". И Цзян, вы никогда не возвращались:(Просто отвечая на этот вопрос для полноты.

Другие вопросы по тегам