How can I change text-nodes text?
HTML:
<p class='theClass'> bbb <a href=#> foo</a> aaa </p>
I'm trying to change 'aaa' and 'bbb' to hello world
. I successed to select those nodes but couldn't change their text.
Jquery so far:
var $textNodes = $('.theClass').contents().filter(function() {
return this.nodeType == Node.TEXT_NODE;
});
What can I do with this $textNodes
to change their text?
Use the
nodeValue
ordata
property of the text node. Both are equally valid and well supported:Incidentally,
Node.TEXT_NODE
does not exist in IE < 9, so you'd be better off simply using3
instead.Found it after a lot of time in MDN:
This propery is called
nodeValue
notvalue
for some stupid reason...fixed JQuery:
Fixed JSFiddle
You can't directly edit a text node with jQuery.
Just use the native
data
ornodeValue
property directly on the nodes.jsFiddle