mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 16:54 Benutzername: Passwort: Auto-Login

Thema: Javascript Tabelle modifizieren vom 13.12.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Javascript Tabelle modifizieren
Autor Nachricht
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht: Männlich
Verfasst Do 13.12.2007 00:08
Titel

Javascript Tabelle modifizieren

Antworten mit Zitat Zum Seitenanfang

Hallo!

Versuche gerade ein Javascript zusammenzuschreiben, das mir in jeder Tabelle mit der zugewiesenen Klasse "usertable" die erste Zeile (<tr>) grau einfärbt bzw. die Klasse "first" zuweist.

Code:
<html>
<head>
   <title>Test</title>
   <style type="text/css">
   .first { background: #c0c0c0; }
   </style>
   <script type="text/javascript">
   function initJs(){
      var klasse = document.createAttribute("class");
      klasse.nodeValue = "first";

      var tbody = document.getElementsByTagName("tbody")[0];
      var tr = tbody.firstChild();
      tr.setAttributeNode(klasse);
   }
   </script>
</head>
<body onload="initJs();">
<table cellspacing="5" cellpadding="0" border="0" class="usertable">
    <tbody>
        <tr>
            <td>Zeile 1</td>
        </tr>
        <tr>
            <td>Zeile 2</td>
        </tr>
        <tr>
            <td>Zeile 3</td>
        </tr>
    </tbody>
</table>
</body>
</html>


Das ist mein bisheriger Ansatz, ich könnte theoretisch auch dem tbody-tag die Klasse zuweisen, aber ab da hab
ich keine Chance mehr...

Weiß jemand Rat?

Danke!
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Do 13.12.2007 13:57
Titel

Antworten mit Zitat Zum Seitenanfang

bevor wir da zu tief einsteigen - warum passiert das nicht schon beim generieren der tabelle?? kannst du da nichts beeinflussen? woher kommen die tabellen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 13.12.2007 14:01
Titel

Antworten mit Zitat Zum Seitenanfang

Zieh dir mal prototype (prototypejs.org).

dann:
Code:
Event.observe(window,'load', function (ev) {
  $$('table').each (function(table) {
    // evtl. fallunterscheidungen einbauen falls du <tbody>/<thead> verwendest.
    table.down('tr',0).addClassName('firstRow');
  });
});


Zuletzt bearbeitet von bacon am Do 13.12.2007 14:01, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Do 13.12.2007 14:51
Titel

Antworten mit Zitat Zum Seitenanfang

ja-freund? na, dat is ja schon ne framework-ehe, bacon Grins

Zuletzt bearbeitet von pixelpapst303 am Do 13.12.2007 14:51, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Do 13.12.2007 15:48
Titel

Antworten mit Zitat Zum Seitenanfang

Code:
   window.onload = function() {
      if(document.getElementsByTagName) {
              var tables = document.getElementsByTagName("table");
              for(i=0<i<tables.length;i++) {
                 if(tables[i].className.indexOf("usertable") != -1) {
                    tablerows = tables[i].getElementsByTagName("tr");
                    tablerows[0].className = 'first';
                 }
              }
              
            }
   }


eigentlich müsste doch sowas gehen oder hab ich dich da falsch verstanden?
  View user's profile Private Nachricht senden
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht: Männlich
Verfasst Fr 14.12.2007 17:07
Titel

Antworten mit Zitat Zum Seitenanfang

@ pixelpapst303
da ich die Daten lediglich aus ner DB ziehe und keinen Einfluss auf die Erzeugung nehmen darf

@ sahnemuh
Danke schön! Hätte sogar fast funktioniert... Lächel Hast nen Schreibfehler drin gehabt...

So funktionierts:
Code:
window.onload = function() {
      if(document.getElementsByTagName){
         var tables = document.getElementsByTagName("table");

         for(var i=0; i < tables.length; i++){
            if(tables[i].className.indexOf("usertable") != -1){
               tablerows = tables[i].getElementsByTagName("tr");
               tablerows[0].className = 'first_tr';
            }
         }
      }
   }


Danke nochmal...
  View user's profile Private Nachricht senden
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Fr 14.12.2007 21:46
Titel

Antworten mit Zitat Zum Seitenanfang

marcusm hat geschrieben:
@ pixelpapst303
da ich die Daten lediglich aus ner DB ziehe und keinen Einfluss auf die Erzeugung nehmen darf

@ sahnemuh
Danke schön! Hätte sogar fast funktioniert... Lächel Hast nen Schreibfehler drin gehabt...

So funktionierts:
Code:
window.onload = function() {
      if(document.getElementsByTagName){
         var tables = document.getElementsByTagName("table");

         for(var i=0; i < tables.length; i++){
            if(tables[i].className.indexOf("usertable") != -1){
               tablerows = tables[i].getElementsByTagName("tr");
               tablerows[0].className = 'first_tr';
            }
         }
      }
   }


Danke nochmal...

nich dafür
habs nur runtergetippt ohne weiter zu testen - is doch super, wenns funzt *zwinker*
  View user's profile Private Nachricht senden
 
Ähnliche Themen Tabelle in JavaScript
JavaScript - onmouseout auf Tabelle
JavaScript Bildwechsel in Tabelle - mit Ziel in neuer Zelle
Browserfenster modifizieren
Laufleiste im Layer modifizieren
Flex HSlide modifizieren
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.