Avatar billede thomas_regin Nybegynder
16. september 2002 - 19:20 Der 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.

Således ser outputtet ud:

<b><span id=256 class=clickableSpan oncontextmenu='displayMenu(); return false'>
Produktet
</span></b><br>
... <span id=281 class=clickableSpan oncontextmenu='displayMenu(); return false'>
Hvad er WPS?
</span>
... Osv. osv..

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!..

Håber, at spørgsmålet er forstået.

På forhånd tak,

/tr
Avatar billede 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;
}

Funktionen kan kaldes med:

tilfoej('<span id=281 class=clickableSpan oncontextmenu=\'displayMenu(); return false;\'>Tekst</span>');
Avatar billede thomas_regin Nybegynder
17. september 2002 - 12:39 #2
Hejsa Phoenixv!

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?

På forhånd tak,

Thomas Regin.
Avatar billede ras2000 Nybegynder
17. september 2002 - 14:54 #3
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.
Avatar billede thomas_regin Nybegynder
17. september 2002 - 14:59 #4
Det skal også kun virke i IE, så det har jeg ingen problemer med! :)

Jeg prøver! Foreløbigt tak for hjælpen!

Jeg vender tilbage!

/tr
Avatar billede ras2000 Nybegynder
17. september 2002 - 15:02 #5
Der skal lige stå document.body.insertAdjacentHTML("beforeEnd", html);
Avatar billede 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);
}
Avatar billede thomas_regin Nybegynder
17. september 2002 - 17:31 #7
Hejsa igen!

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
Avatar billede 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;
}
Avatar billede 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;
}
}
Avatar billede 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.
Avatar billede thomas_regin Nybegynder
18. september 2002 - 00:11 #11
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! :)

Jeg har endnu et problem, som i herefter kan slås om! Det kan findes på: http://www.eksperten.dk/spm/259222

Hehe.. ;)

1000 tak for hjælpen til jer begge!

Med venlig hilsen,

Thomas Regin.
Avatar billede Slettet bruger
18. september 2002 - 20:20 #12
Jeg er en han. :)
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

IT-JOB