---
title: "dynamisk getElementById"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/182923-dynamisk-getelementbyid"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Thompa__85"
published: "2010-03-23T10:47:30.000Z"
updated: "2010-03-23T11:15:53.000Z"
replies: 6
views: 624
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/182923-dynamisk-getelementbyid"
---

# dynamisk getElementById

## #1 — Thompa__85, 2010-03-23T10:47Z

Hej!

Jag har en funktion:

```
function showHint(str)
{
if (str.length==0)
  {
  document.getElementById("värde").innerHTML="";
  return;
  }
```

Jag vill få in värdet från str till document.getElementById() och jag har testat med getElementById(str) men det verkar inte fungera.

Hur gör jag?

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

## #2 — The_Hulk, 2010-03-23T10:55Z

Kan du visa koden för html-taggen som du vill ändra värdet på.
har du satt id='värde' på den taggen?

```
<div id='värde'></div>
```

innehåller **str** id på html-taggen eller text som ska visas?

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

## #3 — nitro2k01, 2010-03-23T10:57Z

Så här?

```
function showHint(str)
{
if (str.length==0)
  {
    // Tom sträng, använd standard-värde
    document.getElementById("värde").innerHTML="";
    return;
  }
  else
  {
    // Använd strängen
    document.getElementById(str).innerHTML="";
    return;
  }
```

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

## #4 — Thompa__85, 2010-03-23T11:02Z

Upptäckte att det har fungerat. Det är ett annat problem som skapar felet:
Min kod:

```
function showHint(str)
{
var id = str;

if (str.length==0)
  {
  document.getElementById(id).innerHTML="";
  return;
  }
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support XMLHTTP!");
  return;
  }
var url="/inc/show.asp?q="+str;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)
  {
  document.getElementById(id).innerHTML=xmlhttp.responseText;
  }
}
```

I första funktionen fungerar det, men jag får inte med 'id' till den andra funktionen, dvs stateChanged. Hur får jag ner värdet?

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

## #5 — metalboy, 2010-03-23T11:06Z

Du får göra id till en global variabel

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

## #6 — nitro2k01, 2010-03-23T11:10Z

Eller så kan man definiera funktionen inline, som nedan.

Dock stör jag mig fortfarande på att du först kollar om strängen är tom och sedan anropar document.getElementById med den strängen. Då anropar du ju document.getElementById("") som alltid lär returnera null!

```
function showHint(str)
{
var id = str;

if (str.length==0)
  {
  document.getElementById(id).innerHTML="";
  return;
  }
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support XMLHTTP!");
  return;
  }
var url="/inc/show.asp?q="+str;
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4)
    {
    document.getElementById(id).innerHTML=xmlhttp.responseText;
    }
  };
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
```

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

## #7 — Thompa__85, 2010-03-23T11:15Z

> **[nitro2k01 skrev:](https://www.webforum.nu/p/1501025)**
>
> Eller så kan man definiera funktionen inline, som nedan.
> 
> Dock stör jag mig fortfarande på att du först kollar om strängen är tom och sedan anropar document.getElementById med den strängen. Då anropar du ju document.getElementById("") som alltid lär returnera null!
>
>
> ```
> function showHint(str)
> {
> var id = str;
> 
> if (str.length==0)
>   {
>   document.getElementById(id).innerHTML="";
>   return;
>   }
> xmlhttp=GetXmlHttpObject();
> if (xmlhttp==null)
>   {
>   alert ("Your browser does not support XMLHTTP!");
>   return;
>   }
> var url="/inc/show.asp?q="+str;
> xmlhttp.onreadystatechange=function()
>   {
>   if (xmlhttp.readyState==4)
>     {
>     document.getElementById(id).innerHTML=xmlhttp.responseText;
>     }
>   };
> xmlhttp.open("GET",url,true);
> xmlhttp.send(null);
> }
> ```

Tack det fungerade! Ska ta bort den onödiga kollen ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/182923-dynamisk-getelementbyid
