Во-первых: такая хрень происходит только в хроме, достали со своей монополией.
Происходит это потому, что умный хром считает, что после параграфа должен быть отступ, даже если параграф всего один.
Решение - заменить p
на span
или выбирать не сам тег, а его содержимое: selectNode
-> selectNodeContents
.