---
title: "\"this.div\"-fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/138881-this-div-fråga"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "haider"
published: "2005-12-06T13:46:05.000Z"
updated: "2005-12-10T14:39:20.000Z"
replies: 6
views: 323
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/138881-this-div-fråga"
---

# "this.div"-fråga

## #1 — haider, 2005-12-06T13:46Z

Tjena

Jag undrar om följande sätt o jobba är korrekt.

om man har ett antal div:ar, och inne i vardera div har jag en DWF film.
För att spela upp eller stoppa, använder jag följande kod:

\<button onClick="FilmNamnet.Play();"\> ...
samt
\<button onClick="FilmNamnet.Stop();"\> ...

Kan man istället för att ge varje SWF en egen ID (ovan FilmNamnet), använda sig av "this"? Alltså att \<button\> pekar till SWF filmen som finns i en o samma DIV (this.div)
På så vis så kan alla SWF-filmer ha samma 'name' men bli separerade genom DIV:arna som har olika namn?

Går det, o isåfall hur gör jag?

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

## #2 — Peter S, 2005-12-06T15:21Z

Om \<button\> ligger i samma \<div\> *och* du vet var filmobjektet ligger *och* objektet ligger på samma ställe i varje \<div\>:

```
<button onclick="this.parentNode.parentNode.childNodes[[b]n[/b]].[i]Method[/i]()">
```

Där *n* är positionen i \<div\>:en.

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

## #3 — haider, 2005-12-07T12:59Z

Oj, det här var \_lite\_ svårt för mig att förstå. Vad menas med position? Menar du vilken av divvarna?

om vi säger att diven ser ut så, enkelt uttryckt:
\<div id="alfa"\>\<object id="filmen"\>\<button\>\</div\>
\<div id="beta"\>\<object id="filmen"\>\<button\>\</div\>
\<div id="gamma"\>\<object id="filmen"\>\<button\>\</div\>

kan du förklara hur n, alltså positionen kommer in i bilden, så kommer jag säkert att förstå.

Tack Peter!

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

## #4 — Peter S, 2005-12-07T13:46Z

```
<div id="alfa">
  <object id="filmen">
  <form>
    <button>
  </form>
</div>
<div id="beta">
  <form>
    <button>
  </form>
  <object id="filmen">
</div>
```

I "alfa" kommer positionen för \<object\> att vara 0 eller 1 (beroende på webbläsare), d.v.s. childNodes\[0\] eller childNodes\[1\].

I "beta" kommer detta index att vara annorlunda eftersom \<object\> inte ligger på samma position inom respektive \<div\>.  :) 

Hur som helst; kan du inte göra en liten funktion?

```
<script>

function f(o, s){
  o = o.parentNode;

  while (o && o.nodeName.toLowerCase() != "div"){
    o = o.parentNode;
  }

  var cn = o.childNodes,
      n  = cn.length;
  while (n--){
    if (cn[n].nodeName.toLowerCase() == "object"){
      switch (s){
	case "Play": cn[n].Play(); break;
        case "Stop": cn[n].Stop(); break;
        default: //
      }

      break;
    }
  }
}

</script>

<div id="alfa">
  <form>
    <button type="button" onclick="f(this, 'Play')"></button>
  </form>
  <object id="filmen1"></object>
</div>
<div id="beta">
  <object id="filmen2"></object>
  <form>
    <button type="button" onclick="f(this, 'Play')"></button>
  </form>
</div>
```

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

## #5 — haider, 2005-12-07T15:53Z

Ska testa på det hemma.

Men man kan alltså inte nå den omedelbart ovanpåliggande parent-noden? För om vi tänker på svenska i javascript form, så skulle man kunna säga this.parent och sen .filmNamnet.Play, eller hur?

Jag tänkte bara på att det kanske därför kan bli kortare. Du har gjort det snyggt genom att en o samma knapp playar o stoppar. Den gamla metoden hade två knappar, men de krävde att man skrev filmNamn.Play(), och det fick mig att tänka på att om man anger filmNamn, fast i den div man just befinner sig i.

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

## #6 — Peter S, 2005-12-07T16:20Z

Möjligtvis i IE. Om \<object\> har id = filmNamn, kan den i IE nås med *filmNamn.Play()*. I normala fall användes *document.getElementById*.

Det gäller att få tag i en referens till \<div\>:en, t.ex. med *this.parentNode.parentNode* i FF. Problemet med den metoden är att den ger olika resultat beroende på webbläsaren. Att då använda en funktion, som jag gjort ovan, kan det problemet lösas.

  :)

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

## #7 — haider, 2005-12-10T14:39Z

ojdå, här blev det fel.

oj, jag råkade skapa en "ny tråd" här mitt i.

Så den är borttagen.

Hoppas ingen råkade se den komma o försvinna; det var ingen deja vu, bara jag som inte var helt pigg. sorry

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/138881-this-div-fråga
