クリックした単語を取得しようと思ったのですが思いの外難しいです
ここでは英単語のようにスペース区切りだけを扱って日本語を形態素解析してーとかいう話は無しです

まずクリックした場所の文字を判定する方法
単語ごとに span タグでわかれていないと長い p タグの中からどうやって判定するんだろう?
というところですが これは document.getSelection() を使えば Node とクリックした場所の offset が取得できるので簡単です

困るのはタグが挟まってる場合です
単語の途中で一部だけを色を付けたいとかそういう用途で単語の途中でタグが入る場合があります
タグの前後にスペースがないならつながった文字とみなせば良さそうですが div の場合は改行なのでスペースがなくても区切るべきです
しかし これは div に限ったものではありません
HTML の表示は CSS で変えれるので span でも改行してるかもしれませんし タグが挟まるとつなげてよいかの判断が難しいです

自分で用意した HTML のみが対象ならやりようはありますが任意の HTML でやろうとすると結構難しいです
特殊な場合は扱わないと割り切って タグ内だけで判定したり デフォルトが inline のタグかつ前後にスペースない場合のみ結合した上で判定するくらいがいいのかもしれませんね