Lege cel uit een tabel uitlezen

Pagina: 1
Acties:

  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-05 11:05
Mensen,

Ik heb een probleem met het volgende stuk code. Ik heb al flink rondgekeken op het forum en ge-googled, maar heb geen bruikbare items kunnen vinden.

code:
1
2
3
4
5
6
7
8
9
for (index=0; index< max_sel; index++)
{
   OPTIE 1 > if(document.getElementById('row'+index).innerText==" ")
   OPTIE 2 > if(document.getElementById('row'+index).firstChild.nodeValue==" ");
     { pos_to_place=index;
                      alert ( pos_to_place);
           index =  max_sel;
    }
 }


De bedoeling is dat ik binnen een tabel alle rows (deze hebben een uniek id) doorloop d.m.v de for loop m.b.v. index. Wanneer een row leeg is wil ik hier een waarde in gaan plaatsen.

Ik heb namelijk een tabel die gevuld is. Maar die waardes kunnen gewist worden. Wanneer er dan een nieuwe waarde ingevuld is moet deze op de eerste lege plek worden ingevuld. Laat ik het volgende even voorop stellen.... Het gaat allemaal prachtig onde IE, maar natuurlijk (OPTIE 1 met innerHTML) niet met FF.

Nu is mijn vraag hoe ik kan controleren wanneer een rij leeg is (met FF) ?

Jan-Willem


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Een rij is leeg als er geen childNodes zijn (of alleen maar textnodes) :)

  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-05 11:05
dan zou het toch zoiets moeten worden ?

code:
1
2
3
4
5
6
7
8
for (index=0; index< max_sel; index++)
{
   if(document.getElementById('player_id'+player_pos_id+''+index).childNodes == 3) 
     { pos_to_place=index;
                      alert ( pos_to_place);
           index =  max_sel;
    }
 }

dit heb ik dus geprobeerd, maar hij vervangt nog steeds de eerste !

Helaas

[ Voor 5% gewijzigd door jee-weetje op 22-12-2004 15:59 ]

Jan-Willem


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
moet je niet ff de .length van je childNodes collection bepalen???

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-05 11:05
uhm... waarom ??
code:
1
 childNodes == 3

Dit geeft aan of het tekst is ja of nee

Jan-Willem


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

jee-weetje schreef op woensdag 22 december 2004 @ 16:05:
uhm... waarom ??
code:
1
 childNodes == 3

Dit geeft aan of het tekst is ja of nee
Nee, childNodes is een collection waar alle childNodes in staan. En de length property geeft het aantal childs aan.

Verwijderd

jee-weetje schreef op woensdag 22 december 2004 @ 16:05:
uhm... waarom ??
code:
1
 childNodes == 3

Dit geeft aan of het tekst is ja of nee
Volgens mij bedoel je:

JavaScript:
1
node.nodeType==3


Verder: Wat is een 'lege rij'? een tr? een lege td binnen een tr? een tr waarin alle td's leeg zijn. De tr zal nooit leeg zijn.

Kun je niet beter iets doen als:

JavaScript:
1
2
3
4
5
6
7
8
tdCollection = myTable.getElementsByTagName("TD");
for (i=0;i<tdCollection.length;i++) {
  thisNode = tdCollection[i];
  if (thisNode.childNodes.length==0 || (thisNode.firstChild.nodeType==3 && thisNode.firstChild.nodeValue.length==0) ) {
    // do your stuff here
    i=tdCollection.length; // dirty but works
  }
}

[ Voor 6% gewijzigd door Verwijderd op 22-12-2004 17:53 . Reden: | ipv }, nodeValue check vergeten, verwarrend en zo... ]


  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-05 11:05
met .length werkt het in ieder geval ook niet
|:(

Jan-Willem


  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-05 11:05
een lege rij is een <tr> waarin ik alle <td>'s met de volgende code heb geleegd :

code:
1
document.getElementById("row_id"+id).innerHTML = "&nbsp;";


Dit werkt wel met FF !

Jan-Willem


  • jee-weetje
  • Registratie: November 2004
  • Laatst online: 19-05 11:05
Tis al gelukt

Gebruik nu innerHTML om de waarde op te halen. Als het een spatie (&nbsp)is, dan doe ik mijn ding !!

Bedankt voor jullie hulp !!

Jan-Willem

Pagina: 1