Если вы знаете полный путь элемента, достаточно ли трудно идти по этому пути, чтобы оправдать подобные вещи? Обычно это такие вещи, как сбор элементов по общим аспектам, не связанным с их абсолютным путем. А с такими двигателями, как Sizzle , я не уверен, что вижу вариант использования для этого. : -)
Мне также интересно, как бы вы справились с этим при перемещении элементов. Предположительно, переназначьте их хэши, которые начнут становиться ужасно быстрыми.
Обратите внимание, что ваш подход не только работает с элементами, созданными во время выполнения Javascript; Вы можете легко присвоить их по факту с помощью функции рекурсивного спуска:
function createIDs(element) {
var child;
if (!element.id) {
element.id = createElementID(element);
}
for (child = element.firstChild; child; child = child.nextSibling) {
if (child.nodeType == 1) { // Element
createIDs(child);
}
}
}
// Kick things off
createIDs(document.body);
Это единовременный удар по предварительно сгенерированному контенту, а не необходимость повторной генерации контента. Не защищаю, просто указываю.