For
* Convenient and fast.
* Easy to use and understand.
* Works in general situations where some factors are unknown.
* Great for writing data to a node, This could take along time with the DOM.
* In situations where you need innerHTML, nothing else will do
* innerHTML is significantly faster than the DOM in Gecko and IE
Against
* It is NOT a W3C DOM standard. It won't likely become one either.
* The DOM is more powerful.
* Its name contains HTML, although it could be used for SGML/XML documents.
* It is lazy and can produce unstructured, lazy code.
* It can lead new developers away from learning about text nodes.
* Code will become hard to port to XML apps and won't be future proof.
* Should the browser be parsing HTML strings and creating nodes?!
* innerHTML can mean structural data inside the behavioural element of your app.
(
http://www.developer-x.com/content/innerhtml/ )