Все такие решения строяться на одном единственном принципе: проставление стиля position: fixed на элементе, который нужно зафризить. Работает вплоть до IE8 (если использовать DOCTYPE). Есть полно плагингов, 10+ jQuery Sticky Scroll Plugins
Если вы "div записываете в переменную", то в переменной лежит HTMLDivElement, а не текст. Это раз. А текст берётся из него с помощью .innerText (см. ссылку в комменте выше).
Ещё можно через getComputedStyle() - с помощью этого метода можно получить даже те стили, которые не были установлены через JS (только на это потребуется больше времени).