---
title: "Problem med funktioner"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/142029-problem-med-funktioner"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Nianbig"
published: "2006-02-05T13:15:06.000Z"
updated: "2006-02-05T19:14:08.000Z"
replies: 4
views: 340
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/142029-problem-med-funktioner"
---

# Problem med funktioner

## #1 — Nianbig, 2006-02-05T13:15Z

Jag har följande kod:

```
<div id="element_0">
   element 1
</div>

<div id="element_1">
   element 2
</div>

<script type="text/javascript">
<!--

   var obj = document.getElementsByTagName("div");

   for( var i = 0; i < obj.length; i++ )
   {
      document.getElementById("element_"+ i).onclick = function () { alert(i) }
   }

// -->
</script>
```

Där jag vill aktivera "onClick" för respektive DIV-element.
Men jag lyckas inte. Om ni provar skriptet i en webbläsare så ser ni att variabeln i som jag skriker ut när man klickar på respektive, blir 2 i båda fallen. Hur i "#¤# kan den bli det?
Det kan inte vara någon specifik webbläsarbugg då det blir samma i Opera, IE och Firefox.

Jag har provat att sätta "setAttribute('onClick.." också men den fungerar inte i IE.

Jag vill inte göra det så lätt att jag sätter onMouseOver direkt i DIV-taggen, utan jag vill göra det med hjälp av javascript.

Vore tacksam för hjälp!

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

## #2 — M@rtin, 2006-02-05T13:35Z

Ser bra ut.

Testa att byta: 
document.getElementById("element\_"+ i).onclick = function () { alert(i) }
Mot:
obj*.onclick = function () { alert(i) }*

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

## #3 — Nianbig, 2006-02-05T15:22Z

Det gör ingen skillnad tyvärr...

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

## #4 — Peter S, 2006-02-05T15:55Z

M@rtin har rätt - använd obj.onclick. Däremot kommer du inte att kunna alert():a 'i' på det viset; för vad är egentligen 'i'?

Du kan ju spara undan värdet i en array eller så innan du sätter onclick-attributet, eller

```
alert(this.id.match(/\d+$/))
```

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

## #5 — Nianbig, 2006-02-05T19:14Z

Tack för era tips, detta löste mitt problem:

```
... = new Function("alert(" + i + ")")
```

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/142029-problem-med-funktioner
