Select Only Text Of An Element (not The Text Of Its Children/descendants)
Please consider the following HTML: Some Text .....
I need to manipulate the 'Some Text' text of td element. I should not tou
Solution 1:
$(function(){
$('td').contents().each(function(){
if(this.nodeType === 3)
$(this).replaceWith(this.wholeText.replace(/e/g, '#'));
});
});
or like you suggested
$('td').contents().each(function(){
if(this.nodeType === 3)
this.data = this.wholeText.replace(/e/g, '#');
});
.contents()
delivers all elements, textNodes included.
Solution 2:
If you want to do something for each piece of text in the td, you could just iterate over them with a loop:
var nodes=tdEl.childNodes;
for(var i=0; i<nodes.length; ++i){
if(nodes[i].nodeType===3){ // 3 means "text"
nodes[i].data = nodes[i].wholeText.replace(/e/g, '@');
}
}
Did I understand what you were looking for correctly?
You could use jQuery if you're already loading it for other stuff, but I wouldn't load in a 24kb library for the small bit of code above.
Post a Comment for "Select Only Text Of An Element (not The Text Of Its Children/descendants)"