我制作了一张带有thead
(标题)的表格;在Mac和Firefox中一切都很好,但在Internet Explorer 6上,头部已经消失......
知道为什么吗?
以下是测试它的链接: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> Date*Endroit*Sanction</li>
<li> 29 Mars & 5 Avril*St-Évariste, Beauce # 1*Équipe Rodéo du Qc.</li>
<li> 12 & 19 Avril*St-Évariste, Beauce # 2*Équipe Rodéo du Qc.</li>
<!-- ... -->
</ul>
答案 0 :(得分:6)
您将<th>
元素直接包含在<thead>
组中;这实际上并不合法。您必须将它们括在<tr>
元素中,并将 放在<thead>
...
请参阅:11.2.3 Row groups: the THEAD, TFOOT, and TBODY elements
因此,在添加jQuery.fn.tablerize()
元素之前,修改<tr>
以在<thead>
中插入<th>
:
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 :(得分: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();
});
};
应该这样做。