Avatar billede tobocom Nybegynder
15. marts 2004 - 22:55 Der 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.

Eks.
<SPAN id="User" Name="Bo">Bo</SPAN>
<SPAN id="User" Name="Per">Per</SPAN>

Jeg er ikke interesseret i alternativer.

I det kort lange skal jeg i sidste ende bruge en streng med alle NAME værdier fra de <SPAN der har id="User"

Eks.
<SPAN id="User" Name="Bo">Bo</SPAN>
<SPAN id="User" Name="Per">Per</SPAN>

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>
Avatar billede olebole Juniormester
15. marts 2004 - 23:11 #1
<ole>

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(";") );

/mvh
</bole>
Avatar billede grunken Nybegynder
15. marts 2004 - 23:13 #2
Det er ganske enkelt også ligeså ugyldigt at have flere elmenter med samme ID, så undlad eventuelt overhovedet at give dem en id!

den nemmeste måde er så at

<script type="text/javascript">

var s = "";

function noget(){
obj = document.getElementsByTagName("SPAN")
for(i=0;i < obj.length;i++)
  s += ";" + obj.name;
}
Avatar billede olebole Juniormester
15. marts 2004 - 23:18 #3
... bortset fra, at begge jeres løsninger giver en streng, der starter med et semikolon. Det er vel ikke meningen?  :)
/mvh
Avatar billede grunken Nybegynder
15. marts 2004 - 23:22 #4
:o)

hehe okay Ole, du får ret :o)
Avatar billede olebole Juniormester
15. marts 2004 - 23:27 #5
... så får du fred  ;oD
Avatar billede olebole Juniormester
15. marts 2004 - 23:30 #6
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
Avatar billede olebole Juniormester
15. marts 2004 - 23:35 #7
... 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:

Array.prototype.push = function(s){return this[this.length]=s};

var aSpans = document.getElementsByTagName("SPAN");
var a = new Array();
for (i=0; i<aSpans.length; i++) {
  a.push(aSpans[i].name);
}
alert( a.join(";") );
Avatar billede tobocom Nybegynder
15. marts 2004 - 23:53 #8
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.
Avatar billede olebole Juniormester
16. marts 2004 - 00:09 #9
Det handler ikke om browser-valg ... det er i direkte modstrid med HTML-standarden. Et id _skal_ være unikt ... like it or not  :)
Avatar billede tobocom Nybegynder
16. marts 2004 - 00:15 #10
Ja ok, I do not like it.

eksemplet for oven er microsofts egen eksempel, så de må jo så også gå mod standarterne, nok derfor de har så mange problemer, lol.

Anyway, jeg har prøvet det du har laver og går mod alle standarter, ved en lille tilrettelse, da jeg ellers får for mange span names med.

Array.prototype.push = function(s){return this[this.length]=s};

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(";") );
Avatar billede tobocom Nybegynder
16. marts 2004 - 00:17 #11
Ole, kan du lægge det som et svar
Avatar billede olebole Juniormester
16. marts 2004 - 00:29 #12
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
Avatar billede roenving Novice
16. marts 2004 - 00:37 #13
>>ha-ha

Har du ikke hørt, at IM (Indenrigsministeriet !-) planlægger at gå bort fra modulus 11-checket på cpr-numre ...

Så for fremtiden vil det være muligt at have flere cpr-numre, som efter de gamle regler ville skulle have været ens !-)
Avatar billede tobocom Nybegynder
16. marts 2004 - 00:54 #14
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.

/Mvh
Tony Boye
Avatar billede olebole Juniormester
16. marts 2004 - 01:13 #15
... anytime  ;o)

roenving >> Det bekræfter mig blot i en gammel teori: At jeg og Indenrigs Ministeriet har tallet 43 tilfælles  :)
/mvh
Avatar billede olebole Juniormester
16. marts 2004 - 01:14 #16
... mit skonummer - og IM's samlede IQ  ;o)
Avatar billede roenving Novice
16. marts 2004 - 01:21 #17
Du går da i for store sko, 42 er jo svaret på alt !-)

*lol*

/spam er ikke normalt, men naturligt .../
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