2 Stimmen

jQuery-Tabellenzeilen werden in Firefox nicht richtig angezeigt

Dies ist der Code, den ich geschrieben habe:

<html>                                                                  
 <head>                                                                  
 <script type="text/javascript" src="jquery-min.js"></script>          
 <script type="text/javascript">                                         

   $(document).ready(function() {

   var rowIndex = ["A","B","C","D","E","F","G","H","I","J","K","L","N"];
   $.get("crosswords.xml",{},function(xml){

   $('crossword',xml).each(function(i) {

   if("1" == $(this).find("number").text())
   {
          $('body').append("<table border=1>");

          for(var i = 0;i < rowIndex.length;i++)
          {
              $('body').append("<tr height=25>");

              for(var j = 0;j < 13;j++)
              {
                  k = (j+1);
                  var cellname = rowIndex[i] + k;
                  var cell = $(this).find(cellname).text();

                  if(cell == "b")
                  {
                      $('body').append("<td width=25> </td> ");
                  }
                  else if(cell == "c")
                  {
                      $('body').append("<td width=25 bgcolor=black> </td> ");
                  }
                  else
                  {
                     $('body').append("<td width=25>" + cell + "</td> ");
                  }

              }

              $('body').append("</tr> ");
          }

          $('body').append("</table>");
      }

  });
  alert(A);

   });

 })                                     
 </script>                                                               
 </head>                                                                 
 <body>                                                             

 </body>                                                                 
 </html>

In Firefox wird sie als einspaltige Tabelle angezeigt. Im IE7 wird die Tabelle überhaupt nicht angezeigt. Wo liegt das Problem? jQuery Version ist 1.4

2voto

treeface Punkte 13082

Sie müssen die Werte für Breite und Höhe in Anführungszeichen einschließen. Anstatt jede einzelne Zeile an den Textkörper anzuhängen, erstellen Sie eine String-Variable, an die Sie die HTML-Datei anhängen. Fügen Sie dann am Ende die gesamte Zeichenkette an.

2voto

Jamie Wong Punkte 17778

Sie sollten solche Dinge nicht tun: $('body').append("</tr> ");

Wenn Sie Javascript verwenden, um DOM-Knoten zu erstellen, sollten Sie den gesamten Knoten erstellen, nicht das Öffnen und Schließen dieses. z.B. um eine Tabelle zu erstellen, würden Sie etwas wie folgt tun:

var table = $('<table>',{border: '1'}).appendTo('body');
for (var i = 0; i < 5; i++) {
    var tr = $('<tr>').appendTo(table);
    for (var j = 0; j < 5; j++) {
        var td = $('<td>').text(i + ',' + j).appendTo(tr);
    }
}

1voto

Z. Zlatev Punkte 4631

Jedes Mal, wenn Sie $('body').append() fügen Sie der document.body , so dass es wie folgt funktioniert:

var $table=$('<table border="1">');

$(document.body).append($table);
...
$table.append('<tr></tr>');
..

und so weiter.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X