16. september 2002 - 19:20Der er
11 kommentarer og 1 løsning
Tilføj ekstra tag..
Hejsa!
I en lang række af span's har jeg nu brug for, via javascript, at tilføje en ny i bunden af min allerede eksisterende liste. Disse spans bliver genereret dynamisk via ASP, og jeg tilspørger derfor de hardcore javascriptere, om dette overhovedet kan lade sig gøre, eftersom jeg ikke har lagt mine tags ind i et array.
Jeg vil nu gerne via javascript kunne tilføje en ny span-class fuldstændig magen til de andre nedenunder uden først at skulle definere præcis hvor mange spans jeg skal bruge!..
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
17. september 2002 - 12:01#1
Du kan indsætte denne kode lige efter din spans:
<div id="xtra"></div>
Og så kan du vha. denne JavaScript-funktion tilføjekode inde i det div-tag:
function tilfoej(html) { if (document.getElementById) document.getElementById("xtra").innerHTML = html; else if (document.all) document.all.xtra.innerHTML = html; }
Jeg havde tænkt noget lignende selv, men det afføder et umiddelbart spørgsmål. Hvad hvis man nu skal bruge flere spans. Den løsning du lægger op til her, tager vel kun højde for, at der bliver lavet ét nyt span-tag i DIV-tagget. Hvis man nu har brug for X flere, kan det så også lade sig gøre?
Så kan du bare ændre document.all.xtra.innerHTML = html; til document.all.xtra.innerHTML += html; Jeg er ikke helt sikker, men jeg mener at det kun virker i ie. Der ville man også kunne bruge insertAdjacentHTML("beforeEnd", html). Så slipper du for et ekstra div tag, men den er jeg ret sikker på kun virker i ie.
Der skal lige stå document.body.insertAdjacentHTML("beforeEnd", html);
Synes godt om
Slettet bruger
17. september 2002 - 17:09#6
Det er nok en god idé at bruge div-tagget, medmindre span'erne er det absolut sidste på siden.
Ellers kan du evt. bruge dette:
function tilfoej(html) { arr = document.getElementsByTagName("span"); for (i = arr.length - 1; i >= 0; i--) if (arr[i].className == "clickableSpan") arr[i].insertAdjacentHTML("afterEnd", html); }
Idéerne er meget gode, men der sker det, når jeg prøver, at DIV-feltet bliver resat hver gang jeg tilføjer en ny SPAN. Hvis jeg bruger Phoenixv's sidste forslag, så sker der det, at istedet for én ny SPAN, så laver den en ekstra SPAN for hver af de allerede eksisterende, OG den resetter DIV-tagget så snart man tilføjer en ny SPAN..
Det begynder at blive lidt forvirrende nu. Især fordi javascript er et så ustruktureret sprog, som det er, omend effektivt! ;)
Er der andre forslag?
/tr
Synes godt om
Slettet bruger
17. september 2002 - 17:36#8
Hvis du skal bruge div-idéen, skal funktionen se således ud:
function tilfoej(html) { if (document.getElementById) document.getElementById("xtra").innerHTML += html; else if (document.all) document.all.xtra.innerHTML += html; }
Synes godt om
Slettet bruger
17. september 2002 - 17:36#9
Uden-div-funktionen skal til gengæld se således ud:
function tilfoej(html) { arr = document.getElementsByTagName("span"); for (i = arr.length - 1; i >= 0; i--) if (arr[i].className == "clickableSpan") { arr[i].insertAdjacentHTML("afterEnd", html); break; } }
Synes godt om
Slettet bruger
17. september 2002 - 17:37#10
Jeg vil dog anbefale den div-løsningen. Den virker også i NS6+. Det ekstra div-tag betyder ikke meget.
Hejsa igen!.. Det virkede fuldstændig efter hensigten!.. I skal ha' mange tak begge to! Jeg har valgt at give pointene til phoenixv, da han/hun gav mig den mest brugbare 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.