YUI, похоже, не обеспечивает такой же уровень манипулирования DOM, как jQuery (хотя я еще не играл с YUI3, так что это может измениться).
innerHTML определенно работает и когда-то был быстрее, хотя я думаю, что это меняется в некоторых современных браузерах. Добавление контента достаточно просто с помощью стандартных методов:
element.appendChild(childElement);
Очистка немного сложнее. Я фактически закончил расширение утилиты YUI DOM и добавил это как метод:
removeChildren : function(elem)
{
var theElement = this.get(elem);
var elemChildren = theElement.childNodes;
var childCount = elemChildren.length;
for (var i = childCount -1; i >= 0; i--)
{
theElement.removeChild(theElement.childNodes[i]);
}
}
Важно отметить, что когда я зацикливаюсь на дочерних узлах, я начинаю с последнего элемента и иду вперед. Это связано с тем, что при удалении узла размер массива изменяется. Кроме того, если я удаляю узел в позиции [0], все элементы массива перемещаются вниз на позицию (то есть элемент, который был в позиции [1], теперь становится элементом в позиции [0]). Если бы я начал с начала массива, я бы пропустил элементы и быстро превысил границу массива.