---
title: "skumt fel.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/161380-skumt-fel"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Fredde Mannen"
published: "2007-06-11T20:42:07.000Z"
updated: "2007-06-12T06:16:35.000Z"
replies: 2
views: 387
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/161380-skumt-fel"
---

# skumt fel..

## #1 — Fredde Mannen, 2007-06-11T20:42Z

Har skapat en mycket enkel visa/dölj för ul, i IE räknar den rätt på antalet li i varje ul, men inte i ff.. blir hel konstigt där.. 

vad tror ni?! Såga mig nu vid fotknölarna :D

```
	var eDiv = document.getElementsByTagName('div');	

	function newsList() {
		
		var i;
		try {
		
		for(i=0;i<eDiv.length;i++) {

			if(eDiv[i].className == 'visible') {
				// dölj div-elementen som har className==visible
				eDiv[i].className = 'invisible';
				
				// skapa nytt a-element
				var a = document.createElement('a');

				// räkna antalet noder i ul som ligger i diven med ordningen i.
				var listItems = eDiv[i].getElementsByTagName('ul')[0].childNodes.length;

				// Skapa text för visa/dölj länkarna beroende på antalet nyheter (li-items)
				if(listItems > 1) {
					var txt = document.createTextNode('Visa alla ' + listItems + ' nyheter!');
				} else { 
					var txt = document.createTextNode('Visa nyheten!');
				}
				
				a.setAttribute('href','javascript:expand('+i+','+listItems+');');		
				// Lägg till text till länken.
				a.appendChild(txt);
				// Lägg till den skapade länken sist i föräldertaggen. 
				eDiv[i].appendChild(a);
			}
			
		}	
		
	} catch(e) {
		alert(e.message);	
	}			
	}
	
	function expand(item,listItems) {
		
		try {
			if(item) {
				eDiv[item].className = 'visible';
				eDiv[item].lastChild.href='javascript:collapse('+item+','+listItems+');';
				
				// läs kommentar högre upp..
				if(listItems > 1) {
					var txt = 'D&ouml;lj alla ' + listItems + ' nyheter!';
				} else { 
					var txt = 'D&ouml;lj nyheten!';
				}
				// Sätt text för länk!
				eDiv[item].lastChild.innerHTML = txt;
			}
		} catch(e) {
			alert(e.message);
		}
	}
	
	function collapse(item,listItems) {
	
		try {
			if(item) {
				eDiv[item].className = 'invisible';
				eDiv[item].lastChild.href='javascript:expand('+item+','+listItems+');';
				
				// läs kommentar högre upp..
				if(listItems > 1) {
					var txt = 'Visa alla ' + listItems + ' nyheter!';
				} else { 
					var txt = 'Visa nyheten!';
				}
				// Sätt text för länk!
				eDiv[item].lastChild.innerHTML = txt;
			}
		} catch(e) {
			alert(e.message);
		}
		
	}
	
	// load event
	addLoadEvent(newsList);
```

IE visar de korrketa antalet: 
i IE: 27, 9, 29, 1
och FF visar tok konstigt fel
i FF: 55, 19, 59, 3

det blir en skillnad: 28, 10, 30, 2 på antal  li i varje ul i varje div.. :l

Permalänk: https://www.webforum.nu/p/161380

## #2 — Morph, 2007-06-12T00:39Z

Det är skillnad på vad IE och FF returnerar när man anropar childNodes.length. FF gör som W3C-spec:en säger och inkluderar whitespace (dvs radbrytningar o dyl) som textnoder i nodträdet, vilket inte IE gör. Läs mer på [Mozilla.org](http://developer.mozilla.org/en/docs/Whitespace_in_the_DOM).

För att lösa problemet kan du ju t.ex. skriva om funktionen så den går igenom .childNodes men bara räknar noder med ett .nodeName som är lika med 'li'.

Permalänk: https://www.webforum.nu/p/1989560

## #3 — Fredde Mannen, 2007-06-12T06:16Z

> **Morph skrev:**
>
> Det är skillnad på vad IE och FF returnerar när man anropar childNodes.length. FF gör som W3C-spec:en säger och inkluderar whitespace (dvs radbrytningar o dyl) som textnoder i nodträdet, vilket inte IE gör. Läs mer på [Mozilla.org](http://developer.mozilla.org/en/docs/Whitespace_in_the_DOM).
> 
> För att lösa problemet kan du ju t.ex. skriva om funktionen så den går igenom .childNodes men bara räknar noder med ett .nodeName som är lika med 'li'.

Upptäckte det.. :) Tack så mycket!

Får kolla detta med .nodeName, då kanske man får rätt antal i FF också :D hehe..

Permalänk: https://www.webforum.nu/p/1989569

---

Tråden på webben: https://www.webforum.nu/amne/javascript/161380-skumt-fel
