I need to change the font color.
I have the following:
var clr="green";
<font color=clr>' + onlineff + ' </font>
The font color does not change to green. Just wondering how this could be fixed.
Consider changing your markup to this:
<span id="someId">onlineff</span>
Then you can use this script:
var x = document.getElementById('someId');
x.style.color = '#00FF00';
see it here: http://jsfiddle.net/2ANmM/
Don't use <font color=
. It's a really old fashioned way to style text and some browsers even don't even support it anymore.
caniuse lists it as obsolete, and strongly recommends not using the <font>
tag. The same is with MDN
Do not use this element! Though once normalized in HTML 3.2, it was deprecated in HTML 4.01, at the same time as all elements related to styling only, then obsoleted in HTML5.
Starting with HTML 4, HTML does not convey styling information anymore (outside the element or the style attribute of each element). For any new web development, styling should be written using CSS only.
The former behavior of the element can be achieved, and even better controlled using the CSS Fonts CSS properties.
If we look at when the 4.01 standard was published we see it was published in 1999
where <font>
was officially deprecated, meaning it is still supported but shouldn't be used anymore as it will go away in the newer standard.
And in the html5 standard released in August 2014 it was deemed obsolete and non conforming.
To achieve the desired effect use spans and css:
function givemecolor(thecolor,thetext)
{
return '<span style="color:'+thecolor+'">'+thetext+'</span>';
}
document.write(givemecolor('green',"Hello, I'm green"));
document.write(givemecolor('red',"Hello, I'm red"));
body {
background: #333;
color: #eee;
}
update
This question and answer are from 2012 and now I wouldn't recommend using document.write as it needs to be executed when the document is rendered first time. I had used it back then because I assumed OP was wishing to use it in such a way. I'd recommend using a more conventional way to insert the custom elements you wish to use, at the place you wish to insert them, without relying on document rendering and when and where the script is executed.
Native:
function givemecolor(thecolor,thetext)
{
var span = document.createElement('span');
span.style.color = thecolor;
span.innerText = thetext;
return span;
}
var container = document.getElementById('textholder');
container.append(givemecolor('green', "Hello I'm green"));
container.append(givemecolor('red', "Hello I'm red"));
body {
background: #333;
color: #eee;
}
<h1> some title </h1>
<div id="textholder">
</div>
<p> some other text </p>
jQuery
function givemecolor(thecolor, thetext)
{
var $span = $("<span>");
$span.css({color:thecolor});
$span.text(thetext);
return $span;
}
var $container = $('#textholder');
$container.append(givemecolor('green', "Hello I'm green"));
$container.append(givemecolor('red', "Hello I'm red"));
body {
background: #333;
color: #eee;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1> some title </h1>
<div id="textholder">
</div>
<p> some other text </p>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With