Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Change CSS Class property using javascript?

Reply
Thread Tools

Change CSS Class property using javascript?

 
 
Noozer
Guest
Posts: n/a
 
      12-05-2004
I have several tags on a webpage of the same class. If the user clicks a
specific checkbox I'd like to be able to alter the display property of the
class, affecting all objects of that class.

This is an intranet application so we know that javascript will be enabled
and the browser will be IE.

How can I affect all the members of this class? Is there a way I can toggle
the DISPLAY property of a class so all the elements using that class would
be affected?

ie:

default.css file contains the following and is included into the HTLM
document:

.topicone { display:none; }
.topictwo { display:none; }

Relevant section of HTML code:
<input type="checkbox" onclick="flip('topicone')'">Show me information
about topic one.<br>
<input type="checkbox" onclick="flip('topictwo')'">Show me information
about topic two.<br>
<p>Please see the following:</p>
<p> Quick Points </p>
<p class="topicone">This is some information about topic one.</p>
<p class="topictwo">This is some information about topic two.</p>
<p> Details </p>
<p class="topicone">More information about topic one.</p>
<p class="topicone">More information about topic one.</p>
<p class="topictwo">This is some information about topic two.</p>




 
Reply With Quote
 
 
 
 
RobB
Guest
Posts: n/a
 
      12-06-2004
"Noozer" <> wrote in message news:<k2Msd.434866$nl.289708@pd7tw3no>...
> I have several tags on a webpage of the same class. If the user clicks a
> specific checkbox I'd like to be able to alter the display property of the
> class, affecting all objects of that class.
>
> This is an intranet application so we know that javascript will be enabled
> and the browser will be IE.
>
> How can I affect all the members of this class? Is there a way I can toggle
> the DISPLAY property of a class so all the elements using that class would
> be affected?
>
> ie:
>
> default.css file contains the following and is included into the HTLM
> document:
>
> .topicone { display:none; }
> .topictwo { display:none; }
>
> Relevant section of HTML code:
> <input type="checkbox" onclick="flip('topicone')'">Show me information
> about topic one.<br>
> <input type="checkbox" onclick="flip('topictwo')'">Show me information
> about topic two.<br>
> <p>Please see the following:</p>
> <p> Quick Points </p>
> <p class="topicone">This is some information about topic one.</p>
> <p class="topictwo">This is some information about topic two.</p>
> <p> Details </p>
> <p class="topicone">More information about topic one.</p>
> <p class="topicone">More information about topic one.</p>
> <p class="topictwo">This is some information about topic two.</p>


Not really enough information, but...IE-only:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>untitled</title>
<style type="text/css">

body {
font: normal 90% verdana;
}
..topicone {
font: normal 80% verdana;
color: #600;
display: none;
}
..topictwo {
font: normal 80% verdana;
color: #060;
display: none;
}

</style>
<script type="text/javascript">

function IE_set_class(clanSheetame)
{
var re = new RegExp(clanSheetame);
var rules, nRule,
nRules, SS, nSheet = 0,
nSheets = document.styleSheets.length;
for (nSheet; nSheet < nSheets; ++nSheet)
{
SS = document.styleSheets.item(nSheet);
rules = SS.rules;
nRules = rules.length;
for (nRule = 0; nRule < nRules; ++nRule)
{
rule = SS.rules.item(nRule);
if (re.test(rule.selectorText))
{
for (var a = 1; a < arguments.length; a+=2)
rule.style[arguments[a]] = arguments[a + 1];
return;
}
}
}
}

function toggleclass(obj)
{
var dval = obj.checked ? 'block' : 'none';
IE_set_class(obj.value, 'display', dval)
}

onload = function()
{//keep things in sync
var i = 0,
ipt,
ipts = document.getElementsByTagName('input');
while (ipt = ipts.item(i++))
if (/toggle/i.test(ipt.name))
ipt.onclick();
}

</script>
</head>
<body>
<form>
<input type="checkbox" name="toggle" value="topicone"
onclick="toggleclass(this)">Show me information
about topic one.<br>
<input type="checkbox" name="toggle" value="topictwo"
onclick="toggleclass(this)">Show me information
about topic two.<br>
<p>Please see the following:</p>
<p> Quick Points </p>
<p class="topicone">This is some information about topic one.</p>
<p class="topictwo">This is some information about topic two.</p>
<p> Details </p>
<p class="topicone">More information about topic one.</p>
<p class="topicone">More information about topic one.</p>
<p class="topictwo">This is some information about topic two.</p>
</form>
</body>
</html>
 
Reply With Quote
 
 
 
 
RobG
Guest
Posts: n/a
 
      12-06-2004
Rob B wrote:
>
> ...lol - I did a S&R to change var 'SSn' to 'nSheet' and it also changed
> 'classname' to 'clanSheetame' which sounds vaguely Scottish. I am sorry.
>


And here I was thinking you were being creative. Shazam!

--
Rob
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How could I change the NavigateUrl property at runtime based on another controls property ? Radu ASP .Net 2 01-25-2007 10:51 AM
Nested Class, Member Class, Inner Class, Local Class, Anonymous Class E11 Java 1 10-12-2005 03:34 PM
Set CSS property equal to another CSS property? Noozer HTML 10 10-13-2004 09:20 PM
CSS Property changes via Javascript trashes CSS print version Julie Siebel Javascript 4 02-25-2004 01:29 PM
Is there a way to set the a CSS property to be explicitly the same as another CSS property? Joshua Beall HTML 1 12-10-2003 07:21 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57