philipp21: Bildertausch

Hallo.
Bin Javascript-Anfänger und komme nicht weiter.
Ich möchte bei onClick auf ein Bild selbiges tauschen und andersrum. Dazu müsste ich erst die Bildquelle abfragen und das funktioniert bei mir nicht. Könnt ihr mir sagen, was ich falsch mache hierbei:

function kartentausch (counter)
{
 if(document.images[counter].src == "images/karte.gif")
 {
 document.images[counter].src = "images/karte_h.gif";
 }
}

Vielen Dank

  1. if(document.images[counter].src == "images/karte.gif")

    Laß Dir mit alert() die src ausgeben. Vermutlich steht hier der qualifizierte URI drin. Dann solltest Du mit indexOf() oder sonstwas prüfen.

    1. if(document.images[counter].src == "images/karte.gif")

      Laß Dir mit alert() die src ausgeben. Vermutlich steht hier der qualifizierte URI drin. Dann solltest Du mit indexOf() oder sonstwas prüfen.

      Dank Dir, aber das kapier ich nicht.
      Bekomme mit alert den absoluten pfad ausgegeben.
      Was bedeutet "qualifizierte URI" und was könnte ich mit
      "indexOf()" tun?

      gruß philipp

      1. Bekomme mit alert den absoluten pfad ausgegeben.
        Was bedeutet "qualifizierte URI" und was könnte ich mit
        "indexOf()" tun?

        qualifizierter URI == absoluter Pfad (und eben nicht images/bla.gif), und nun guck in der JavaScript-Doku nach, was indexOf() tut (und zwar unter String...)

        URI bedeutet Uniform Resource Identifier, ein Begriff, der sich im Unverständnis der Begriff URL, URI und URN durchgesetzt hat. URL zu benutzen gilt mittlerweile als "uncool", und URN kennt eh keine Sau. Nur ein paar ganz kleine Säue.

        Und nun installier' Dir die Google ToolBar, so daß Du immer schön schnell suchen kannst :)

  2. Hallo Philipp,

    function kartentausch (counter)
    {
    if(document.images[counter].src == "images/karte.gif")

    wie rufst du die Funktion auf?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo Tobias

      ruf ich mit
      <a href="#" onClick="kartentausch('karte')">Bild</a>
      auf.
      Gruß philipp

      1. Hallo Philipp,

        <a href="#" onClick="kartentausch('karte')">Bild</a>

        für das x in document.images[x] musst du eine Zahl einsetzen - nicht einen String, siehe auch http://selfhtml.teamone.de/javascript/objekte/images.htm#allgemeines.

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. hi,

          für das x in document.images[x] musst du eine Zahl einsetzen - nicht einen String, siehe auch http://selfhtml.teamone.de/javascript/objekte/images.htm#allgemeines.

          sicher?
          bei den formularelementen ist die gleiche schreibweise angegeben, aber mit [feldname] funktioniert es da auch.

          würde mich wundern, wenn der zugriff auf ein bild über images['bildname'] nicht möglich wäre.

          gruss,
          wahsaga

          1. Hallo wahsaga,

            für das x in document.images[x] musst du eine Zahl einsetzen - nicht einen String, siehe auch http://selfhtml.teamone.de/javascript/objekte/images.htm#allgemeines.
            sicher?
            bei den formularelementen ist die gleiche schreibweise angegeben, aber mit [feldname] funktioniert es da auch.

            bei den Formularelementen sind beide Schreibweisen angegeben (forms[#] und forms[<name>]) - bei den Bildern allerdings nicht.

            würde mich wundern, wenn der zugriff auf ein bild über images['bildname'] nicht möglich wäre.

            du hast Recht - es funktioniert (zumindest in Firebird0.7 und IE6 - andere Browser habe ich gerade nicht da) auch mit Bildname.

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
            1. hi,

              bei den Formularelementen sind beide Schreibweisen angegeben (forms[#] und forms[<name>]) - bei den Bildern allerdings nicht.

              zumindest unter http://selfhtml.teamone.de/javascript/objekte/elements.htm#allgemeines finde ich in den beispielen keinen eindeutigen hinweis darauf, dass hier für # nicht nur eine zahl, sondern auch der feldname benutzt werden kann.

              gruss,
              wahsaga

            2. Hi,

              du hast Recht - es funktioniert (zumindest in Firebird0.7 und IE6 - andere Browser habe ich gerade nicht da) auch mit Bildname.

              Prinzipiell auf allen Browsern seit Navigator 2.0, der uns mit JavaScript 1.1 document.images brachte.

              Der Nav 3.0 hat sogar, bei verschachtelter Tabelle 2. Grades, einen Bug, der ihn die Nummerierung durcheinander würfeln läßt (Index um 1 verrutscht). Netscape hat seinerzeit die Schreibweise mittels Namen als Work-Around empfohlen (derart adressiert, war der verschobene Index natürlich ohne Wirkung).

              Gruß, Cybaer

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe auch Anderen: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Hallo Cybaer,

                du hast Recht - es funktioniert (zumindest in Firebird0.7 und IE6 - andere Browser habe ich gerade nicht da) auch mit Bildname.
                Prinzipiell auf allen Browsern seit Navigator 2.0, der uns mit JavaScript 1.1 document.images brachte.

                danke - vielleicht könnte man das in Selfhtml ergänzen? Hat das schon jemand gemeldet, oder soll ich?

                Grüße aus Nürnberg
                Tobias

                --
                Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
                1. Hi,

                  Prinzipiell auf allen Browsern seit Navigator 2.0, der uns mit JavaScript 1.1 document.images brachte.

                  BTW: War natürlich der 3er! =:-)

                  danke - vielleicht könnte man das in Selfhtml ergänzen? Hat das schon jemand gemeldet, oder soll ich?

                  Hmm, also AFAIR hatte ich mit selfHTML diesbezügl. keine Probleme. Und sonstige Unzulänglichkeiten (von W3C-DOM/DHTML will ich gar nicht erst anfangen) sind ja nun einige drin - fällt also kaum auf. ;-)

                  Gruß, Cybaer

                  --
                  Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe auch Anderen: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          2. würde mich wundern, wenn der zugriff auf ein bild über images['bildname'] nicht möglich wäre.

            gruss,
            wahsaga

            Also, das Ansprechen über Bildnamen funktioniert, aber auch nicht bei meiner bildtauschaktion, die funzt auch mit den Bildnummern nicht.

            Gruß philipp

          3. [...]

            Euch ist schon klar, daß das Problem in der Bedingung liegt?

            1. [...]

              Euch ist schon klar, daß das Problem in der Bedingung liegt?

              hi wahsaga.
              leider nein!
              kannste dazu noch kurz was erläutern?
              danke
              philipp

            2. hi,

              Euch ist schon klar, daß das Problem in der Bedingung liegt?

              ja, nicht zuletzt weil du es ja hier [pref:t=77736&m=448926] schon erwähnt hast ;-)

              wir diskutieren hier nur ein wenig neben dem thread her.

              gruss,
              wahsaga

              1. wir diskutieren hier nur ein wenig neben dem thread her.

                Ja, nur hat der Kollege hier [pref:t=77736&m=449110] das noch nicht erkannt - was ich vermutet habe, weil er so lustig auf Eure Erörterungen eingestiegen ist :)

                1. wir diskutieren hier nur ein wenig neben dem thread her.

                  Ja, nur hat der Kollege hier [pref:t=77736&m=449110] das noch nicht erkannt - was ich vermutet habe, weil er so lustig auf Eure Erörterungen eingestiegen ist :)

                  tja, kollege scheckt wirklich nix mehr in diesen paralleluniversen, die sich nach meiner bildertauschpromplematik aufgetan haben.
                  hat jemand lust, nochmal bei kurz über null anzufangen?
                  Ist jemand so lustig?
                  vielen dank
                  gruß philipp

                  1. hi,

                    tja, kollege scheckt wirklich nix mehr in diesen paralleluniversen, die sich nach meiner bildertauschpromplematik aufgetan haben.
                    hat jemand lust, nochmal bei kurz über null anzufangen?
                    Ist jemand so lustig?

                    lies dir doch [pref:t=77736&m=448940] noch mal aufmerksam durch.

                    gruss,
                    wahsaga

  3. Ich möchte bei onClick auf ein Bild selbiges tauschen und andersrum. Dazu müsste ich erst die Bildquelle abfragen und das funktioniert bei mir nicht. Könnt ihr mir sagen, was ich falsch mache hierbei:

    Welchen Fehler erhälst du denn?

    function kartentausch (counter)
    {
    if(document.images[counter].src == "images/karte.gif")

    Du solltest dich nie darauf verlassen, das irgendetwas den Wert hat den du erwartest.

    function kartentausch (counter)
    {
    if(!counter || !document.images || !document.images[counter]) return;

    so und da offensichtlich nicht dass passiert, was du erwartest, wie wäre es mit ein wenig debugging?

    alert(document.images[counter].src + "==" +  "images/karte.gif");

    Struppi.