[js regexp NaN]krijg NaN terug terwijl ik geen nummer wil

Pagina: 1
Acties:

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

Topicstarter
Allen,

Ik gebruik de volgende code om opties te kunnen verwijderen dmv een druk op de knop. Ik doe dit mbv outerHTML.. alle elementen die een hoger nummer hebben, moeten een nummer lager krijgen. Omdat ik een heel stuk HTML moet veranderen, kan ik niet 'simpel' zeggen 2 wordt 1 3 wordt 2 enz enz enz...

Ik moet 2 dingen veranderen:
- row_2 moet row_1 worden (en verder omhoog..)
- #2 moet #1 worden (en verder omhoog..)
De volgende code:

In document.NieuwElement.AantalOpties.value staan hoeveel elementen er in totaal zijn..


JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for(i = Verwijderde_Row*1+1;i <= document.NieuwElement.AantalOpties.value; i++)
            {
                var Row = 'row_'+i;
                var Counter = '#'+i;
                //alert(Counter);
                var Element = document.getElementById(Row);
                
                var re = new RegExp(Row, 'g');
                var re1 = new RegExp(Counter, 'g');
                
                var temp = Element.outerHTML.replace(re, 'row_'+i-1);
                alert(temp);
                
                return false;
                temp = temp.replace(re1, '#'+i-1);
                Element.outerHTML = temp;
            }


Als ik de beide regular explressions uitvoer zodat ze alleen een nummer terug geven, gaat het goed. Maar zodra ik met "row_" en "#" ga werken, krijg ik NaN terug.. terwijl ik dat helemaal niet wil.. Weet iemand een oplossing?

*Het kan zijn dat de regular expression ook beter kan, maar zovaak werk ik er niet mee......

[ Voor 15% gewijzigd door Jaspertje op 09-03-2004 16:46 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

waarom zo moeilijk (en IE-only) doen om rows te verwijderen?

HTML:
1
2
3
4
5
6
7
<table border="1">
  <tr onclick="this.parentElement.removeChild(this)"><td>row 1</td></tr>
  <tr onclick="this.parentElement.removeChild(this)"><td>row 2</td></tr>
  <tr onclick="this.parentElement.removeChild(this)"><td>row 3</td></tr>
  <tr onclick="this.parentElement.removeChild(this)"><td>row 4</td></tr>
  <tr onclick="this.parentElement.removeChild(this)"><td>row 5</td></tr>
</table>

Intentionally left blank


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Wat extra haakjes doen wonderen: bijv. 'row_'+(i-1)

Today's subliminal thought is:


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

Annie schreef op 09 maart 2004 @ 18:55:
Wat extra haakjes doen wonderen: bijv. 'row_'+(i-1)
Het blijft ranzig om een replace te doen op inner/outerHTML, en DOM-methoden zijn vaak sneller; zelfs als je door een rowCollection heen moet fietsen...

Ik mis in de topicstart ook wat row_2 en #2 nou eigenlijk zijn? tekstwaarden of attribuutwaarden?

[ Voor 15% gewijzigd door crisp op 09-03-2004 19:04 ]

Intentionally left blank


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Overigens is het dan ook wel aan te raden een attribuut uit de DOM 1, 2 en 3 specificatie te gebruiken (parentNode) in plaats van een attribuut uit een working draft van DOM level 1 (HTML) uit '97 (parentElement) ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

Topicstarter
crisp schreef op 09 maart 2004 @ 19:01:
[...]

Het blijft ranzig om een replace te doen op inner/outerHTML, en DOM-methoden zijn vaak sneller; zelfs als je door een rowCollection heen moet fietsen...

Ik mis in de topicstart ook wat row_2 en #2 nou eigenlijk zijn? tekstwaarden of attribuutwaarden?
Misschien wel, maar als ik een rijtje heb met 1, 2, 3, 4, 5.. en ik haal 2 weg.. dan wil ik dat 3, 4 en 5 allemaal met 1 naar beneden gaan.... en daar gebruik ik het voor..

Zit nu thuis dus heb de HTML niet precies maar het is zoiets:

HTML:
1
2
3
4
5
6
7
<table width=100%, id='row_x'>
  <tr>
    <td width='3%'>
      #x
    </td>
  </tr>
</table>


De x is dus een nummer, en door op een andere knop te drukken, komt er een rij bij met een extra nummer..

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

Jaspertje schreef op 09 maart 2004 @ 20:04:
[...]

Misschien wel, maar als ik een rijtje heb met 1, 2, 3, 4, 5.. en ik haal 2 weg.. dan wil ik dat 3, 4 en 5 allemaal met 1 naar beneden gaan.... en daar gebruik ik het voor..

Zit nu thuis dus heb de HTML niet precies maar het is zoiets:

HTML:
1
2
3
4
5
6
7
<table width=100%, id='row_x'>
  <tr>
    <td width='3%'>
      #x
    </td>
  </tr>
</table>


De x is dus een nummer, en door op een andere knop te drukken, komt er een rij bij met een extra nummer..
Je beschrijft het allemaal nog erg oppervlakkig; wat is precies de bedoeling, wat moet het gaan worden? De keuze van een table lijkt me trouwens ook niet de meest logische, het maakt de structuur waar je mee moet gaan werken in scripting nodeloos ingewikkeld (tbody, rowcollection, cellcollection). Een list zou al veel eenvoudiger te manipuleren zijn.
Zijn de id's ook wel noodzakelijk?
drm schreef op 09 maart 2004 @ 19:33:
Overigens is het dan ook wel aan te raden een attribuut uit de DOM 1, 2 en 3 specificatie te gebruiken (parentNode) in plaats van een attribuut uit een working draft van DOM level 1 (HTML) uit '97 (parentElement) ;)
mmmz, ja; ik zat weer te slapen ;)

Intentionally left blank


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

crisp schreef op 09 maart 2004 @ 19:01:
Het blijft ranzig om een replace te doen op inner/outerHTML, en DOM-methoden zijn vaak sneller; zelfs als je door een rowCollection heen moet fietsen...
offtopic:
Oh, maar het was ook niet mijn bedoeling om mijn oordeel te geven. Ik had/heb geen flauw idee waar de TS mee bezig is, zag alleen het foutje.

Opvoedkundige taken daar hebben we jullie moderators voor :P ;)

Today's subliminal thought is:


  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

Topicstarter
Heb nu weer ff tijd, zal proberen het duidelijk te maken..

De opdracht bestaat uit het makkelijk kunnen invoegen van verschillende HTML objecten (denk aan input type=text, button, reset, submit).. Een van de objecten is de select.... maar een select heeft verschillende options... Nu moet het niet zo zijn dat je standaard maar 3 options kan toevoegen. Dus je begint met 1.. en door een druk op de knop kan je een 2e toevoegen.. en weer een druk, dan de 3e.... en verwijderen (daar ging de vraag over).... Het zou dus zo kunnen zijn dat iemand 35 options wilt toevoegen..

(dat is ook meteen de rede dat ik outerHTML gebruik, en dus een table, want outerhtml op een tr is niet mogelijk.. (javascipt error)

Ik hoop dat het nu duidelijker is

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Ik zou je dan toch aan willen raden om eens te kijken naar de eerder genoemde DOM methodes. Het is misschien even wat bijlezen en een andere manier van aanpakken, maar het resultaat zal iig een stuk beter toegerust zijn op de huidige browsers (en op de toekomst).

Today's subliminal thought is:

Pagina: 1