hvorfor ikke bruger to gange parentNode, som netop giver span-elementet, hvis du går ud fra fx checkboxen. Men det skal lige siges at man ikke umiddelbart kan skifte klasser on-the-fly, da det kræver en gendannelse af dokument-træet.
-- og forøvrigt vil en udskiftning af className virke, men som Skovenborg fastslår medfører det en total genberegning af hele dokumentet udseende, hvilket for det første er lidt fjollet, når man bare ændrer noget på en lille bid af siden eller nogle få properties ...
For det andet er det en forbandet dårlig vane at få, for næste gang skal du skrive noget til en side med et ekstremt kompliceret DOM-træ, som derfor vil være sekund(er) om beregningen ...
-- og hvis du alligevel skal skrive noget javascript, er der da ikke meget forskel på:
function chProps(elm){ elm.parentNode.parentNode.className = 'KarlsHest'; }
-- og:
function chProps(elm){ var e = elm.parentNode.parentNode.style; e.color = 'blue'; e.backgroundColor = '#fff'; //evt. osv. !-) }
Det er i og for sig lidt for at undgå at skulle javascripte farverne ind - der er 4 farver som kan skifte. Men det ender nok med at være en bedre løsning.
hvis du virkelig har nogle komplicerede klasser så kan det måske være en fordel at lægge den ind i et array og bruge den når du vil skifte style: <script type="text/javascript"> var klasse1 = [["backgroundColor","blue"],["color","#fff"]]; var klasse2 = [["backgroundColor","white"],["color","#000"]];
function changeClass(elm,classArray) { for (i=0;i<classArray.length;i++) { eval("elm.style."+classArray[i][0]+" = '"+classArray[i][1]+"'"); } } </script>
<div class="check1"> <div id="inputBlock"> <input type="checkbox" id="cid13071" value="13071" name="c13071" onfocus="changeClass(this.parentNode.parentNode,klasse1);" onblur="changeClass(this.parentNode.parentNode,klasse2);"/> </div> <div id="listBlock">Private samler ind til r..</div> </div>
... og da 'style' er et objekt - og objekter og associative arrays i JS er to repræsentationer én og samme datastruktur - kan du endda kalde med ganske almindelig array-notaion: elm.style[classArray[i][0]] = classArray[i][1];
Derudover er 'items' en collection, hvorfor det egentlig burde være skrevet: elm.style.items(classArray[i][0]) = classArray[i][1]; ... just for the record ;o)
Et langt ude eksempel, som jeg ikke aner, hvad man skulle bruge til, er:
if (document["style"]["background-color"]=="red") { window["location"]["href"] = "http://www.eksperten.dk"; } ... bare for at vise, at der er fine muligheder for at læse/sætte dynamiske properties på et objekt. Strengene kan jo blot udskiftes med variabler
Tja ... sådan er det vel at være uden venner. Juleaftens dag - og ikke én eneste lille anledning til at brokke sig kan man få .... ØV - ØV - og atter ØV ...!!! :((
Jeg har allerede en forrygende jul - Jeg slipper nemlig helt og adeles for stres da jeg som altid er alene. Julen er hjertenes fest og ikke mere andefedt på mit hjerte - jeg har allerede fået rigeligt og jeg skal jo passe vægten. ;-)
Ork mand - Jeg har fået mere julemad og også lavet det selv i den her måned end gennemsnittet får. Sidste julefrokost 26 til spisning og mig alene i køkkenet og der manglede absolut intet. Folk blev sølle 16 timer, men dem der blev så længe kan formodenligt ikke huske det.
Det var mig der smed de sidste 6 ud - Man har desværre en eller anden idé om at man skal holde lidt øje med folk der vælter rundt i dit hjem, så man holder selv igen med ihvertilfald 1½ pils ;-)
øv, hvor går det stærkt lige fra morgenstunden af - nå, men glædelig jul alle sammen og tak for points og alt det der :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.