Avatar billede jes_petersen2 Nybegynder
03. oktober 2002 - 23:13 Der er 10 kommentarer og
1 løsning

Omsætte object til streng

Jeg har en variabel dObject, som indeholder ID på en given layer. Når jeg gerne vil have udskrevet dObject, f.eks. i en alert-box, får jeg blot "[object]"... Det synes jeg er træls!

Hvad skal jeg gøre - findes der ikke ligesom parseInt() en funktion til at parse til tekst med...?
Avatar billede jakoba Nybegynder
03. oktober 2002 - 23:17 #1
du kan jo lave en til dig selv:

dObject.toString = new Function( "return this.ID;" );

når ser skal konverteres til string (som fx i en alerte) kikker javascript efter en toString() metode i objektet og udfører den hvis den er der.

alert( "id = "+dObject );
Avatar billede jakoba Nybegynder
03. oktober 2002 - 23:26 #2
problemet er at en automatik i den situation er farlig

objektet mathias er et person objekt
        og har en property barn der er et Person objekt
objektet mathias.barn hat en property far der er Person objektet mathias

hvis objekter automatisk blev til strenge ville det blive til en uendelig løkke nå  barn propertyen i mathias vil være en streng og derfor igen prøver at gøre mathias til en streng der igen prøver at gøre barn til en streng osv osv.
Avatar billede jes_petersen2 Nybegynder
03. oktober 2002 - 23:31 #3
jakoba >> Jeg kan ikke få noget af ovenstående til at virke - men jeg forstår heller ikke helt - er det en løsning? Ellers ville det være fint, hvis du har en hjemmelavet funktion...
Avatar billede jakoba Nybegynder
03. oktober 2002 - 23:42 #4
som her:

<HTML>
<HEAD><TITLE>javascript objekt</TITLE>
<script type='text/javascript'>
var olsen = new Object();
olsen.navn = "hans olsen";
olsen.toString = new Function( "return this.navn;" );
</script>
</HEAD>
<BODY>
<form>
<input type='button' value="skriv olsen" onclick="alert( olsen );">
<input type='button' value="skriv olsen.toString();" onclick="alert( olsen.toString() );">
<input type='button' value="olsen.navn='Jes Petersen';" onclick="olsen.navn='Jes Petersen';">
<input type='button' value="olsen.navn='Hans Olsen';" onclick="olsen.navn='Hans Olsen';">
</form>
</BODY>
</HTML>

mvh JakobA
Avatar billede jes_petersen2 Nybegynder
03. oktober 2002 - 23:58 #5
Jeg kan ikke få det til at virke...
Avatar billede jakoba Nybegynder
04. oktober 2002 - 00:06 #6
jeg har lagt testen ud på: http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp265809.html
og testet at det er OK i IE4, IE5.5, NS4 og NS7

hvis det ikke virker kommer jeg nok til at kikke på din kode.
Avatar billede jerome Nybegynder
04. oktober 2002 - 10:26 #7
Hvis du vil se hvad dit objekt indeholder kan du bare gøre flg.

var t="";
for (obj in dObject)
{
  t = t + obj + '\t';
}
alert(t);

Håber du kan bruge det..
Avatar billede skg Nybegynder
04. oktober 2002 - 10:49 #8
hvis du vil have ID'et på dit lag, kan du jo bare skrive .id efter det object du prøver at alert'e

ala: alert(dObject.id)

ellers kan du jo altid bruge varibal+'' for at lave det til en streng (skal lige sige at du dog ikke får id'et ud på den måde).
Avatar billede jes_petersen2 Nybegynder
04. oktober 2002 - 20:07 #9
jerome >> Jeg får altid outputtet "[object]" eller "undefined"

Jakoba: Her kan du se min kode - det er en  funktion i et drag/drop script:

function moveme_onmouseup() {
    if(dragobject) {

        if(parseInt(dragobject.style.top) >= -398&&parseInt(dragobject.style.top) < -268){
            if(parseInt(dragobject.style.left) >= -285&&parseInt(dragobject.style.left) < -116){
                dragobject.style.top = "0px";
                dragobject.style.left = "0px";

                var t="";
                for (obj in dragobject)
                {
                  t = t + obj + '\t';
                  alert(obj + dragobject.obj)
                }
                alert(t);
                document.Img1.src = document.movemeSource.src;
            }
        }

        dragobject = null;
    }
}
Avatar billede jakoba Nybegynder
04. oktober 2002 - 20:48 #10
desværre, jeg tror ikke jeg kan hjælpe.
Avatar billede jes_petersen2 Nybegynder
14. august 2003 - 18:11 #11
Lukker
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