jQuery почти наверняка найдет что-то для вас, но в целом это звучит так, как будто вы ищете свойства и методы обхода DOM интерфейса Node , в частности previousSibling , nextSibling и firstChild . Неполный пример здесь . Одна вещь, на которую следует обратить внимание, это возвращаемый вами тип узла, gecko добавляет текстовый узел пробела в DOM, а IE - нет.
Множество руководств по обходу JS DOM в Google.