RE: Microsoft DHTML and DOM Level 2

On Wednesday, October 11, 2000 11:28 AM, Andreas Girgensohn
[mailto:ag_nospam@fnmail.com] wrote:

> I'm trying to understand the differences between Microsoft's
> implementation of Dynamic HTML and DOM Level 2.  In particular, I find
> one example of Microsoft's implementation very useful and I wonder how
> I could accomplish the same using only DOM methods.
> 
> <A HREF="your-link-here"
>    ONMOUSEOVER="this.innerText='Click Me Please'"      
>    ONMOUSEOUT="this.innerText='your-text-here'"
> >your-text-here</A>
> 
> As I understand, DOM does not provide an innerText attribute and I'm
> unclear how I would accomplish the same using the methods for 
> accessing
> and replacing nodes.
> 

Andreas,

The A node, in your example, has a single child. This child is a text node,
containing 'your-text-here'.

To change this, you would traverse to this node, then modify its data
attribute.
In your example, it would be:

<A HREF="your-link-here"
	ONMOUSEOVER="this.firstChild.data='Click Me Please'"      
	
ONMOUSEOUT="this.firstChild.data='your-text-here'">your-text-here</A>

or

<A HREF="your-link-here"
	ONMOUSEOVER="this.childNodes.item(0).data='Click Me Please'"      
	
ONMOUSEOUT="this.childNodes.item(0).data='your-text-here'">your-text-here</A
>


If your node does not start out with a text node, then you will need to
create one. For example,

<script type="text/javascript">
	function setText(o,sText) {
		if (o.firstChild==null) {
			var oTextNode=document.createTextNode(sText)
			o.appendChild(oTextNode)
		} else {
			o.firstChild.data=sText
		}
	}
</script>

<A HREF="your-link-here"
	ONMOUSEOVER="setText(this,'Click Me Please')"      
	ONMOUSEOUT="setText(this,'your-text-here')"></A>


If your node contains other nodes(i.e. images, etc...), you will need to
program accordingly, some possibilities include:
 - removing all nodes and then adding a text node
 - walking the child nodes until you find a text node(by testing the
nodeType attribute)

Regards,

-Tom

Received on Wednesday, 11 October 2000 12:37:16 UTC