Я делаю это с помощью чистого JavaScript, зацикливаясь на узлах lastChild целевого элемента. Если в вашем HTML есть пробел, lastChild может быть текстовым узлом, поэтому мы выполняем цикл до тех пор, пока не найдем узел элемента (тип узла 1) или пока у нас не закончатся узлы (previousSibling вернет ноль).
Например, чтобы найти последний элемент на странице, я возвращаюсь из lastChild тела:
var targetElement = document.getElementsByTagName("body")[0],
lastChildElement = targetElement.lastChild;
while (lastChildElement && lastChildElement.nodeType !== 1) {
lastChildElement = lastChildElement.previousSibling;
}
if (lastChildElement) {
// Do something
}
Если внутри тела нет элемента, lastChildElement выйдет из этого цикла как ноль.