15. marts 2004 - 22:55Der er
16 kommentarer og 1 løsning
loop <SPAN> id
Jeg kan ikke huske hvordan det er man looper flere <SPAN> igennem på en side i (JavaScript selvfølgelig), der har samme id men forskellige navne og trækker navnet ud. En der kan hjælpe.
Ikke gyldig script, men giver måske mening: <script language="JavaScript"> var s = ""; var obj = document.getElementById("User"); for(i=0;i < obj.length;i++) s += ";" + obj.name; </script>
Du kan ikke have flere elementer med samme id - men gerne med samme name. Når du får rettet id'erne, kan du gøre sådan:
var aSpans = document.getElementsByTagName("SPAN"); var a = new Array(); for (i=0; i<aSpans.length; i++) { a.push(aSpans[i].name); } alert( a.join(";") );
Skal mit script bruges i en browser, der kun understøtter JavaScript 1.2 (f.eks: IE/MacOS), skal det dog skrives:
var aSpans = document.getElementsByTagName("SPAN"); var a = new Array(); for (i=0; i<aSpans.length; i++) { a[a.length] = aSpans[i].name; } alert( a.join(";") );
Da Array.push() skiftede virkemåde i JS 1.3 :) /mvh
... med mindre, man selv definerer den nye virkemåde på Array-objektets prototype. Så kan man bruge push-funktionen i resten af dokumentet, hvis det er ønskeligt. Den kan evt. lægges sammen med andre default-funktioner og wrappers i en fil, der importeres af alle sider på sitet:
var aSpans = document.getElementsByTagName("SPAN"); var a = new Array(); for (i=0; i<aSpans.length; i++) { a.push(aSpans[i].name); } alert( a.join(";") );
Det er ikke sandt at det ikke er gyldigt at have flere id der hedder det samme, det er nettop det smarte, eks, jeg f.eks bruger til knapper. (Det er til intranet, så derfor tænker jeg ikke på Netscape mv.)
<SCRIPT FOR=link EVENT=onmouseover LANGUAGE="JScript"> var el = window.event.srcElement; for ( ; el.id != "link"; el = el.parentElement); el.className = "MainMenuLinkOver"; </SCRIPT>
Jeg har brugt det før, derfor ved jeg det kan lade sig gøre, kan bare ikke find det script jeg brugte det i. Men olebole's eks, er selvfølgelig et alternativ, skal bare til at programmere ret meget om, da jeg anvender nævnte script hvor jeg refferer til link, til styring af et helt site.
var aSpans = document.getElementsByTagName("SPAN"); var a = new Array(); for (i=0; i<aSpans.length; i++) { if(aSpans[i].id=="user") a.push(aSpans[i].name); } alert( a.join(";") );
Yups ... og glem i øvrigt ikke, at MS er den afgjort største spiller i forbindelse med udarbejdelse af W3C's HTML-standard. Derudover er det jo lodret imod fornuften i et id, at flere elementer kan have samme id. Id står for identifikation - og hvordan identificerer du et element, hvis andre har det samme id? Det svarer til, flere personer har det samme CPR-nummer ... og det ville jo være helt tåbeligt :) /mvh
Jeg er enig i din kommentar Ole, og jeg må jo bare igennem min kode og oprette mine egne SID i spannen i stedet for.
Det var meningen det bare skulle være et mindre hurtigt projekt, men eftersom jeg kan se det nok skal bruges til en perminent løsning, er jeg jo nok nød til at rette mine script igennem. Tak for svaret.
Du går da i for store sko, 42 er jo svaret på alt !-)
*lol*
/spam er ikke normalt, men naturligt .../
Synes godt om
Ny brugerNybegynder
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.