Unlike innerText, this does *not* remove existing elements in the element.
It only replaces the first text node it sees.
If there are no text nodes, it calls appendText.
So, given <div><img />text here</div>, it will keep the <img />, and replace the text here.
Sets the direct text, without modifying other child nodes.