Avatar billede per-d Nybegynder
16. november 2004 - 18:22 Der er 4 kommentarer og
1 løsning

Fjerner ikke celler

Hej eksperter,

Hvorfor virker dette ikke?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
<script language="Javascript">
function fjernceller() {

document.tdtest.style.display = "none";
}
</script>
</head>

<body>
<a onclick="fjernceller()">Fjern Celler</a>
<table >
<td >Denne skal ikke fjernes</td>
<td name="tdtest">dfdsf</td>
<td name="tdtest">dfdsfdsf</td>
</table>


</body>
</html>

Det er menningen at den skal fjerne alle celler der hedder tdtest. Men det gør den ikke, den udskriver i stedet en fejlmeddelser der siger at document.tdtest.style ikke findes.
Avatar billede luzk Nybegynder
16. november 2004 - 18:54 #1
En måde du kan gøre det på er følgende:

============

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
<script language="Javascript">
function fjernceller() {

var allTds = document.getElementsByName("tdtest")

for(var i=0;i<allTds.length;i++)
  allTds[i].style.display = "none";

}
</script>
</head>

<body>
<a onclick="fjernceller()">Fjern Celler</a>
<table >
<td >Denne skal ikke fjernes</td>
<td id="tdtest">dfdsf</td>
<td id="tdtest">dfdsfdsf</td>
</table>


</body>
</html>

============

Jeg har ændret "name" til "id".
Jeg henter alle elementer der hedder tdtest ind i et array med getElementsByName
Herefter sætter jeg display = none på hvert enkelt af dem.
Jeg forsøgte mig med getElementsById men den tog kun det første i rækken... anyway; så ser det ud til at virke :-)

/Luzk
Avatar billede per-d Nybegynder
16. november 2004 - 19:14 #2
Virker der er bare et problem, vil helst ikke have at der er flere elementer der har den samme id. Dette er bland andet for at ølge w3c standarder
Avatar billede olebole Juniormester
17. november 2004 - 10:12 #3
<ole>

Nej, den virker kun i yderst buggy browsers, som IE. Der er få huller mellem fejlene i koden, men det kan man vist ikke være tilfreds med  :)

Et andet problem er, at du ikke bare kan fjerne celler ... du skal jo have samme antal celler i hver række - eller ligge og rode med at få opdateret noget colspan/rowspan.
Kan du ikke nøjes med at tømme cellerne? Hvordan og til hvad skal det bruges?

/mvh
</bole>
Avatar billede per-d Nybegynder
17. november 2004 - 17:46 #4
Skal bruges til noget design preview funktion sådan at når en bruger vælger at pris på ens ønskeliste ikke skal vises kan han se det med det samme og ikke først efter han har trykket gem.

Jeg fjerner jo heller ikke cellerne jeg skjuler dem bare med display: none;

Har du en god løsning olebole?

Har du en god løsning
Avatar billede olebole Juniormester
17. november 2004 - 18:07 #5
Okay ... så sæt en klasse på alle de celler:
  <td class="gemDette">4.123.365.128,00 kr</td>

Og dit script:

<script language="Javascript">
function fjernceller() {
  var aTD = document.getElementsByTagName("TD");
  for (i=0; i<aTD.length; i++) {
      if (aTD[i].className=="gemDette") aTD[i].style.display = "none";
  }
}
</script>
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