How do I get the text of an element without the children?
Neither element.textContent nor element.innerText seem to be working.
HTML:
Just find the text nodes:
var element = document.getElementById('whatever'), text = '';
for (var i = 0; i < element.childNodes.length; ++i)
if (element.childNodes[i].nodeType === Node.TEXT_NODE)
text += element.childNodes[i].textContent;
edit — if you want the text in descendant ("children") nodes, and (as is now apparent) you're using jQuery:
$.fn.allText = function() {
var text = '';
this.each(function() {
$(this).contents().each(function() {
if (this.nodeType == Node.TEXT_NODE)
text += this.textContent;
else if (this.nodeType == Node.ELEMENT_NODE)
text += $(this).allText();
});
});
return text;
};
Hold on and I'll test that out :-) (seems to work)