469,951 Members | 2,494 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,951 developers. It's quick & easy.

setting text, change the font

Hello,

Suppose I have a table like this :

<table width = "580">
<tr align = "right" width = 760>
<td id = "current_page_inner">
<font size="4" color="lightgreen" face="arial"><b><i>
abc
</i></b>
</font>
</td>
</tr>
</table>

....
if I do in code :
current_page_inner.children(0).innerText = "bcd"
the text is changed to the new text,
and the font doesn't change,
but the font is not italic and not bold as the original.
Why ?

Thanks :)
Jul 20 '05 #1
1 8838
"Mr. x" <a@b.com> writes:
Suppose I have a table like this :

<table width = "580">
<tr align = "right" width = 760>
<td id = "current_page_inner">
<font size="4" color="lightgreen" face="arial"><b><i>
abc
</i></b>
I recommend against using the font, b and i tags. Use CSS to get
the same effect, that is what it was invented for.
</font>
</td>
</tr>
</table>
...
if I do in code :
current_page_inner.children(0).innerText = "bcd"
Amazing, out of the three parts of the expression on the left of
the equal sign, all are IE-specific and won't work in Mozilla.

It is bad style to refer to an element by using its name as a global
variable (bad style, and not likely to work in many browsers, including
Mozilla).
Use the W3C DOM method "getElementById" instead:
document.getElementById("current_page_inner")

The children collection is not standard code. Again, it probably works
in IE, but doesn't in Mozilla/Netscape 6+. Use the W3C DOM "childNodes"
collection instead:

document.getElementById("current_page_inner").chil dNodes[0]

Likewise "innerText" is a proprietary MS property that doesn't work in
Mozilla. The W3C method isn't as short, so I won't show it here.
the text is changed to the new text,
and the font doesn't change,
but the font is not italic and not bold as the original.
Why ?


Because the first child of the element named current_page_inner is the
font tag (in IE, in Mozilla it is a text node containing the newline
between the td and the font elements). You set the innerText of the
font tag to "bcd". That clears *all* the content of the font tag and
adds a single text node with the text "bcd".

It is equal to this W3C DOM code (ok, I will show it here :)

---
var elem = document.getElementById("current_page_inner").
getElementsByTagName("*")[0]; // first non-text-node
while (elem.hasChildNodes()) { // remove content
elem.removeChild(elem.lastChild);
}
elem.appendChild(document.createTextNode("bcd")); // add new content
---
/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

18 posts views Thread by fleemo17 | last post: by
14 posts views Thread by Roger Withnell | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.