Avatar billede netrotten88 Nybegynder
06. marts 2007 - 21:04 Der er 10 kommentarer

Opdater en span

Hej exp

Hvordan lave jeg i JavaScript en kode som opdater min span når jeg loader mit JavaScript

Jeg skal vil bruge innerHTML men ved ikke helt hvordan man gør :S

<span id="billede"><img src="billede1"></span>
Avatar billede hansdam Nybegynder
06. marts 2007 - 21:10 #1
document.getElementByID("billede").innerHTML = "<img src='billede1.jpg'>";
Avatar billede webudvikleren Nybegynder
06. marts 2007 - 21:18 #2
Det passer nu ikke helt hansdam.
ID skal da - efter hvad jeg har læst, ikke stå med stort?

Desuden - hvorfor ikke lave det endnu nemmere, ved at gøre sådan:

<img id="billede" src="billede1.jpg" alt="" />

<script type="text/javascript">
window.onload = function()
{
  var o = document.getElementById('billede');
      o.src = "billede2.jpg";
};
</script>

-- så vil den ændre "billede1.jpg" til "billede2.jpg" :-)
Avatar billede webudvikleren Nybegynder
06. marts 2007 - 21:21 #3
Men et retaderet svar til dit spørgsmål vil være i stil med:

<span id="billede">
  <img src="billede1.jpg" alt="" />
</span>

<script type="text/javascript">
function RedigerBillede ( b )
{
  document.getElementById('billede').innerHTML = "<img src=\"" + b + "\" alt=\"\" />";
}
</script>

<a href="java script:RedigerBillede('billede2.jpg');">
  Ret billede til billede2.jpg!
</a>

Desværre ved jeg ikke helt hvordan man får HTML enabled med denne mulighed (fremfor innerHTML) ->

document.getElementById('billede').firstChild.nodeValue = "<img .... />";

Har intet svar på den sidste, men ellers brug innerHTML :-)
Avatar billede netrotten88 Nybegynder
06. marts 2007 - 21:30 #4
Hvis jeg nu vil bruge

<script type="text/javascript">
window.onload = function()
{
  var o = document.getElementById('billede');
      o.src = "billede2.jpg";
};
</script>

Hvad gør jeg så hvis jeg har 2 billeder i samme <span> ???
fx. <span id="billede"><img src="billede1"><img src="billede2"></span>
Avatar billede kalp Novice
06. marts 2007 - 21:41 #5
måske..
o.child[0].src = "billedeXXX.jpg";

og for billede 2.
o.child[1].src = "billedeXXX.jpg";
Avatar billede webudvikleren Nybegynder
06. marts 2007 - 21:41 #6
Hvad du gør? - vil du opdatere begge billeder, eller kun ét af dem? - Hvis du kun vil ændre ét af dem, så skal du bare gøre som jeg beskrev i 21:18:08.

Hvis du derimod vil ændre 2 forskellige billeder, så kan du lave et array med de id's du har billeder på, også løbe dem igennem.

Eksempel:

<span id="billede">
  <img id="billede1" src="billede1.jpg" alt="Billede 1" />
  <img id="billede2" src="billede2.jpg" alt="Billede 2 " />
</span>

<script type="text/javascript">
var myImgDivs = new Array();
var myImages  = new Array();

window.onload = function()
{
    /**
      @myImgDivs{ x } = (x = selve 'id' på img-tagget)
      @myImgDivs{ x } = (x = billedet som skal erstattes fra img-tagget (id))
    **/

    myImgDivs[0] = "billede1"; myImages[0] = "billede1.jpg";
    myImgDivs[1] = "billede2"; myImages[1] = "billede2.jpg";
 
    for ( i=0; i<myImgDivs.length; i++ )
    {
        document.getElementById( myImgDivs[i] ).src = myImages[i];
    }
};
</script>

-- Dette er sikkert ikke den bedste vej, men dette kan sagtens lade sig gøre.
Når du så skal indsætte flere billeder ( hvis du f.eks skal indsætte billede3 også), så kan du gøre dette:

myImgDivs[2] = "billede2"; myImages[2] = "billede2.jpg";


/** Hvad gør de forskellige? **/
myImgDivs[2] ->
-- myImgDivs  = selve array'et hvor den indeholder de forskellige data.
-- [2]        = 2 fortæller den skal indsætte det på række 2 i array'et.
-- "billede2" = hvad "id" på img-tagget er. dette kan f.eks være "billede3" også.

myImages[2] ->
-- myImages      = selve array'et hvor den indeholder de forskellige data.
-- [2]            = 2 fortæller den skal indsætte på række 2 i array'et.
-- "billede2.jpg" = hvilket billede den skal erstatte med.

Husk det er vigtigt at [?] har samme værdi.

f.eks:
    myImgDivs[0] = "billede1"; myImages[0] = "billede1.jpg";
    myImgDivs[1] = "billede2"; myImages[1] = "billede2.jpg";

Og ved indsættelse af ny:
    myImgDivs[0] = "billede1"; myImages[0] = "billede1.jpg";
    myImgDivs[1] = "billede2"; myImages[1] = "billede2.jpg";
    myImgDivs[2] = "billede1"; myImages[2] = "billede3.jpg";
    myImgDivs[3] = "billede2"; myImages[3] = "billede4.jpg";

Hilsen,
Jesper
Avatar billede olebole Juniormester
07. marts 2007 - 15:09 #7
<ole>

webudvikleren >> Du bruger XHTML markup - men skriver til HTML-DOM  ;o)
Du kan ikke skrive:
    o.src = "billede2.jpg";

Det hedder:
    o.setAttribute("src", "billede2.jpg");

/mvh
</bole>
Avatar billede webudvikleren Nybegynder
07. marts 2007 - 15:13 #8
Måske er det ikke det passende kode jeg har skrevet, men somsagt "-- Dette er sikkert ikke den bedste vej, men dette kan sagtens lade sig gøre".

o.src = "billede2.jpg", ændre fint billedets src, men du har sikkert ret i, at det skal stå sådan. Det kan smutte :D
Avatar billede olebole Juniormester
07. marts 2007 - 15:31 #9
Ja, det kan lade sig gøre lige nu, men når browserne engang begynder at understøtte XHTML, vil browseren dø med en XML-fejl  ;o)
Avatar billede webudvikleren Nybegynder
13. marts 2007 - 09:36 #10
- kommet videre?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester