roman lenz: script läuft zulange

hi hi

ich möchte in einer Zellenüberschrift das letzte zeichen (~)  austauschen.
mit einer while schleife gehe ich alle spalten durch. dieses frage ich mit einem alert ab. das austausche in der letztn zelle dauert immer lange und der browseralert " dieses script läuft zulange ..." erscheind. es wird aber auch in der letzten spalte die tilde durch das "d" ersetzt.

weis jemand warum das script bei der letzten spalte so lange läuft?

hier mal mein code:
__JS__
j="01";
  while(document.getElementById("k1" + j)){
alert(document.getElementById("k1" + j));
    document.getElementById("k1" + j).firstChild.data=document.getElementById("k1" + j).firstChild.data.replace(/.$/,'d');
    j++;
    (j<10) ? j="0" + j : j;
  }
..
..
__tabelle__
 <td valign="middle"><a href="javascript:sort('1')" id="k101">Stadt ~</a>
         </td>
         <td valign="middle"> <a href="javascript:sort('2')" id="k102">Einwohner ~</a>
         </td>
         <td valign="middle"><a href="javascript:sort('3')" id="k103">Brutto ~</a>
         </td>
         <td valign="middle"><a href="javascript:sort('4')" id="k104">Netto ~</a>
         </td>

besten dank

bis bis roman

  1. Hallo,

    Also, ich hab das mal nachgebaut und es funktioniert ratzfatz, besonders, wenn ich den Alert rausnehme.
    Der Sinn des ganzen, besonders der Nummer, die du mitübergibst, ist mir nicht klar. Kann mir nur vorstellen, daß du das zur Überprüfung im Zusammenhang mit dem Alert eingebaut hast.
    Ich hab auch den Link zum Script aus der Tabelle rausgebaut und den Inhalten lediglich die ID zugewiesen, funktioniert.
    Eins ist mir aber völlig unklar:
    In deinem Vergleichsoperator weist du bei der oder-Bedingung j einen dreistelligen Wert zu, wozu oder warum? [(j<10) ? j="0" + j : j;]
    Müsstest du in diesem Fall die Strings nicht zuerst in eine number umwandeln?
    Aber, keine Panik, es kann sich durchaus um ein Verständnisproblem meinerseits handeln.
    Das Script, mit dem ich experimentiert hab:
    <script type="text/javascript">
    <!--
    function sort()
    {
    j="01";
     while(document.getElementById("k1" + j)){
    document.getElementById("k1" +j).firstChild.data=document.getElementById("k1" + j).firstChild.data.replace(/.$/,'d');
    j++;
    (j<10) ? j="0" + j : j;
     }
    }
    //-->
    </script>

    Gruß

    Kurt

    --
    "Mut ist eine Tugend, doch Angst beweist Vernunft, Bewusstsein und Phantasie. Die Kunst ist es abzuwägen."
    http://faq.united-web.at
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
    1. hi Kurt

      dank dir für die hilfe. kommisch das es bei dir gut und schnell läuft. wie sieht den dein html-code aus? steht die id im a-TAG? ich glaube das ist das problem bei mir.

      ich habe mir ein JS geschrieben das einen Tabelle sortiert.
      jede zelle hat eine id. Die id baut sich so auf "m" + zeilennummer + spaltenummer. das "m" muss gegen dem W3c sein. dahinter kommt dann die zeilennummer als string dahinter dann die spaltennummer als string.
      ich will zeilennum und j nicht mathematisch addieren.

      ich wollte das j immer 2eichen groß ist deshalb habe ich (j<10) ? j="0" + j : j; gemacht. aber wo ich jetzt darüber nachdenke und deeenke ......
      ich glaube das brauche ich garnicht???? muss ich mal testen.

      noch mal besten dank

      bis bis roman

      1. Hallo,

        kommisch das es bei dir gut und schnell läuft. wie sieht den dein html-code aus? steht die id im a-TAG? ich glaube das ist das problem bei mir.

        Ich hab es auf beide Arten probiert. Einmal mit der ID im A-Tag, das zweitemal hab ich den Text via Span die ID zugewiesen und den Link ausgelagert. Beim dritten mal habe ich die ID direkt der Zelle zugewiesen, allemale mit demselben Ergebnis.

        ich habe mir ein JS geschrieben das einen Tabelle sortiert.
        jede zelle hat eine id. Die id baut sich so auf "m" + zeilennummer + spaltenummer. das "m" muss gegen dem W3c sein. dahinter kommt dann die zeilennummer als string dahinter dann die spaltennummer als string.
        ich will zeilennum und j nicht mathematisch addieren.

        ich wollte das j immer 2eichen groß ist deshalb habe ich (j<10) ? j="0" + j : j; gemacht. aber wo ich jetzt darüber nachdenke und deeenke ......

        Naja, nach meinem Verständnis ist 0 + 01 = 001, wenn es sich um eine Stringverkettung handelt. Um zu erreichen, daß 0+01=01 ist, meine ich, daß du es in eine mathematische Operation umwandeln müsstest. Wie gesagt, das heisst aber nicht, daß ich richtig liege, mein Wissen dazu ist auch eher rudimentär.

        Gruß

        Kurt

        --
        "Mut ist eine Tugend, doch Angst beweist Vernunft, Bewusstsein und Phantasie. Die Kunst ist es abzuwägen."
        http://faq.united-web.at
        http://elektro-dunzinger.at
        http://shop.elektro-dunzinger.at