---
title: "summera från värden"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/157610-summera-från-värden"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "room"
published: "2007-02-27T13:27:10.000Z"
updated: "2007-02-28T17:16:18.000Z"
replies: 9
views: 524
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/157610-summera-från-värden"
---

# summera från värden

## #1 — room, 2007-02-27T13:27Z

Hej. Jag undrar hur jag ska göra för att summera ett visst antal värden. Istället för att förklara är det lättast att visa.

Gå till följande adress så förstår ni hur jag menar, min fråga blir därefter, hur ska jag få summan på enklast möjliga sätt. Är ingen fena på javascript men det vet jag att det finns andra som är.

Länk:
<http://arno.dedic28.kontrollpanelen.se/default.asp?content=daoStep2> 

Tack på förhand,

// D.

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

## #2 — Koplik, 2007-02-27T14:27Z

```
myArray = new Array()
myVal = new Array()

myArray[0] = "dao30cm";
myArray[1] = "dao40cm";
myArray[2] = "dao50cm";
myArray[3] = "dao75cm";
myArray[4] = "dao100cm";
...
myVal[0] = 30;
myVal[0] = 40;
myVal[0] = 50;
myVal[0] = 75;
myVal[0] = 100;
...

function calculateTotal()
{
  var Result = 0;
  for(i=0;i<myArray.length;i++)
  {
    Result += document.getElementById(myArray[i]).options[document.getElementById(myArray[i]).selectedIndex].value  * myVal[i];
  }

  document.getElementById(ResultDivOrTD).innerHTML = Result + " m";
}
```

Jag började på en idé här sen gick jag på möte och blev lite förvirrad över vad jag ville åstadkomma. Men detta är min grundtanke.
Det finns många olika sätt att lösa detta på, speciellt utan jobbiga manuella arrayer. Men de (bör) fungera.

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

## #3 — room, 2007-02-27T15:51Z

Problem 1: Funkar fint i explorer. Men i mozilla händer inget.. Anropar funktionen vid onchange på alla selects och inputs. Kolla gärna länken ovan för att prova.

Tack på förhand,

```
<script language="javascript">
	myArray = new Array()
	myVal = new Array()

	myArray[0] = "dao30cm";
	myVal[0] = 30;
	myArray[1] = "dao40cm";
	myVal[1] = 40;
	myArray[2] = "dao50cm";
	myVal[2] = 50;
	myArray[3] = "dao75cm";
	myVal[3] = 75;
	myArray[4] = "dao100cm";
	myVal[4] = 100;
	myArray[5] = "dao125cm";
	myVal[5] = 125;
	myArray[6] = "dao150cm";
	myVal[6] = 150;
	myArray[7] = "dao200cm";
	myVal[7] = 200;

	function calculateTotal()
	{
	  var Result = 0;
	  for(i=0;i<myArray.length;i++)
	  {
		Result += document.getElementById(myArray[i]).options[document.getElementById(myArray[i]).selectedIndex].value  * myVal[i]/100;
	  }
	  	Result += (document.getElementById('endless_pcs').value * document.getElementById('endless_lenght').value)/100;
	  	Result += (document.getElementById('2partHook_pcs').value * document.getElementById('2partHook_lenght').value)/100;
	
	  if (Result > 299) {
	  document.getElementById('totalLenght').innerHTML = "<strong>Total bandlängd: " + Result + " m</strong>";
	  } 
	  else {
	  	  document.getElementById('totalLenght').innerHTML = "<strong>Total bandlängd: <font color=red>" + Result + " m</font></strong>";
	  }
	}
</script>
```

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

## #4 — room, 2007-02-28T08:07Z

ingen som har någon aning varför det inte fungerar i mozilla?

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

## #5 — tanten, 2007-02-28T08:32Z

Nu är jag inte hemma på javascript men .innerHTML  i xhtm-dokument i Mozilla var åtminstone för något år sedan något som inte fungerade. Vet inte om det är fixat nu men eftersom det inte fungerar för dig så kanske det är så fortfarande...
Men sök på det så kanske du hittar någon workaround eller något

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

## #6 — Koplik, 2007-02-28T08:34Z

Jag kikar lite på det nu. Kul att mitt script fungerade halvt även fast jag körde från minne.

Första felet är att vi kör med getElementsById när ID:t är något annat, byt ut alla getElementsById mot getElementsByName där myArray anropas. 
Dock fungerar det ändå inte för mig. När jag hämtar elementet och försöker anropa samlingen options så vill inte firefox vara med. 

Jag har ingen aning varför, då jag är säker på att det ska fungera. Jag får luska vidare lite. 

Återkommer

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

## #7 — Koplik, 2007-02-28T08:43Z

Okej, nu fick jag det att funka i FF.
Fråga mig inte varför, men när jag kör getElementByName (eller ID för den delen) så fungerar det inte, om jag dock kör på det sedvanliga sättet och följer DOM strukturen utan hjälp så fungerar det.

```
	function calculateTotal()
	{
	  var Result = 0;
	  for(i=0;i<myArray.length;i++)
	  {
            Result += document.dao1[myArray[i]].options[document.dao1[myArray[i]].selectedIndex].value  * myVal[i]/100;
            Result += (document.getElementById('endless_pcs').value * document.getElementById('endless_lenght').value)/100;
            Result += (document.getElementById('2partHook_pcs').value * document.getElementById('2partHook_lenght').value)/100;
          }
	  if (Result > 299) {
	  document.getElementById('totalLenght').innerHTML = "<strong>Total bandlängd: " + Result + " m</strong>";
	  } 
	  else {
	  	  document.getElementById('totalLenght').innerHTML = "<strong>Total bandlängd: <font color=red>" + Result + " m</font></strong>";
	  }
	}
```

Istället för getElementById så kör jag document.dao1\[myArray*\].options (osv...)

Då skall det fungera.

**Edit:** Rensade lite onödig kod*

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

## #8 — The_Hulk, 2007-02-28T09:22Z

det heter väl getElementsByName och inte getElementByName?
getElementsByName('...') returnerar en array av objekt där objekten har attributet "name='...'" 
vill man få ut endast ett objekt är det getElementById('...') som gäller.

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

## #9 — Koplik, 2007-02-28T09:36Z

> **The_Hulk skrev:**
>
> det heter väl getElementsByName och inte getElementByName?
> getElementsByName('...') returnerar en array av objekt där objekten har attributet "name='...'" 
> vill man få ut endast ett objekt är det getElementById('...') som gäller.

Det har du ju rätt i. Tanken har aldrig slagit mig, dock så använder jag mig aldrig utav getElementsByName heller.
Detta går ju lätt att ordna genom att byta ut ID:t mot namnet som står och köra getElementById istället.

Tack vare TheHulk så slängde jag ihop koden med getElementsByName istället.
Sen kvittar det vilken kod du använder, då båda ska fungera.

```
	function calculateTotal()
	{
	  var Result = 0;
	  for(i=0;i<myArray.length;i++)
	  {
  		  Result += document.getElementsByName(myArray[i])[0].options[document.getElementsByName(myArray[i])[0].selectedIndex].value  * myVal[i]/100;
	  }
	  	Result += (document.getElementById('endless_pcs').value * document.getElementById('endless_lenght').value)/100;
	  	Result += (document.getElementById('2partHook_pcs').value * document.getElementById('2partHook_lenght').value)/100;
	
	  if (Result > 299) {
	  document.getElementById('totalLenght').innerHTML = "<strong>Total bandlängd: " + Result + " m</strong>";
	  } 
	  else {
	  	  document.getElementById('totalLenght').innerHTML = "<strong>Total bandlängd: <font color=red>" + Result + " m</font></strong>";
	  }
	}
```

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

## #10 — room, 2007-02-28T17:16Z

Tack så jättemycket!!!!!

Funkar klockrent!

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/157610-summera-från-värden
