2009-02-25 21 views
2

thead(ヘッダー)でテーブルを作成しました。 Macで、そしてFirefoxですべてうまくいっていますが、Internet Explorer 6では頭はただ消えてしまいました。なぜ私の犠牲がInternet Explorerに表示されないのですか?

何か考えてみませんか?ここで

はそれをテストするためのリンクです:http://www.acecrodeo.com/new/05-rodeos.php ...テーブルがtablerize.jsに構築される:

jQuery.fn.tablerize = function() { 
    return this.each(function() { 
     var table; 
     $(this).find('li').each(function(i) { 
      var values = $(this).html().split('*'); 
      if(i == 0) { 
       table = $('<table>'); 
       var thead = $('<thead>'); 
       $.each(values, function(y) { 
        thead.append($('<th>').html(values[y])); 
       }); 
       table.append(thead); 
      } else { 
       var tr = $('<tr>'); 
       $.each(values, function(y) { 
        tr.append($('<td>').html(values[y])); 
       }); 
       table.append(tr); 
      } 
     }); 
     $(this).after(table).remove(); 
    }); 
}; 

...ページのリストから:

<ul> 

<li>&nbsp; Date*Endroit*Sanction</li> 
<li>&nbsp; 29 Mars &amp; 5 Avril*St-&Eacute;variste, Beauce&nbsp; # 1*&Eacute;quipe Rod&eacute;o du Qc.</li> 
<li>&nbsp; 12 &amp; 19 Avril*St-&Eacute;variste, Beauce&nbsp; # 2*&Eacute;quipe Rod&eacute;o du Qc.</li> 
<!-- ... --> 
</ul> 
+0

コード内にTHE THEADはまったく見つかりません... – Guffa

+0

テーブルはJSのリストから作成されています。 – Shog9

答えて

5

私がTablerizeの著者であることから、私はそれを修正することもできます。

jQuery.fn.tablerize = function() { 
    return this.each(function() { 
     var table = $('<table>'); 
     var tbody = $('<tbody>'); 
     $(this).find('li').each(function(i) { 
      var values = $(this).html().split('*'); 
      if(i == 0) { 
       var thead = $('<thead>'); 
       var tr = $('<tr>'); 
       $.each(values, function(y) { 
        tr.append($('<th>').html(values[y])); 
       }); 
       table.append(thead.append(tr)); 
      } else { 
       var tr = $('<tr>'); 
       $.each(values, function(y) { 
        tr.append($('<td>').html(values[y])); 
       }); 
       tbody.append(tr); 
      } 
     }); 
     $(this).after(table.append(tbody)).remove(); 
    }); 
}; 

これでいいはずです。

+1

++ニース、パオロ - あなたの仕事の後ろに立つ方法。 :-) – Shog9

6

あなたがしています<thead>グループに直接含まれる<th>要素を含む;それは実際には合法ではありません。あなたは<tr>要素で囲み、そして<thead>で ...

見ているを置く必要があります。

11.2.3 Row groups: the THEAD, TFOOT, and TBODY elements

だから<th>要素を追加する前に<thead><tr>を挿入するjQuery.fn.tablerize()を変更します

table = $('<table>'); 
var thead = $('<thead>'); 
var headRow = $('<tr>'); 
$.each(values, function(y) { 
     headRow.append($('<th>').html(values[y])); 
    }); 
thead.append(headRow); 
table.append(thead); 

<tbody>要素も省略しています。おそらくそれらのうちの1つに残りの行を置くべきでしょう。

関連する問題