cleanWhitespace :: Element |
cleanWhitespace() removes whitespace-only text nodes. This can be very useful when using standard methods like nextSibling, previousSibling, firstChild or lastChild to walk the DOM.
If you only need to access element nodes (and not text nodes), try using Element's new up(), down(), next() and previous() methods instead. You won't regret it!
Example
Consider the following HTML snippet:
<ul id="apples"> <li>Mutsu</li> <li>McIntosh</li> <li>Ida Red</li> </ul>
Let's grab what we think is the first list item:
var element = $('apples'); element.firstChild.innerHTML; // -> undefined
That doesn't seem to work to well. Why is that ? ul#apples's first child is actually a text node containing only whitespace that sits between <ul id="apples"> and <li>Mutsu</li>.
Let's remove all this useless whitespace:
element.cleanWhitespace();
That's what our DOM looks like now:
<UL id="apples"><LI>Mutsu</LI><LI>McIntosh</LI><LI>Ida Red</LI></UL>
And guess what, firstChild now works as expected!
element.firstChild.innerHTML; // -> 'Mutsu'
|
Prototype API 1.5.0 - prototypejs.org