使用jQuery将无序列表转换为表
我喜欢得到一个使用jQuery将无序列表转换为表,jquery,html-lists,css-tables,Jquery,Html Lists,Css Tables,我喜欢得到一个,并用CSS将它做成一个漂亮的表格 我喜欢用jQuery进行转换 * Place|Name|Earning * 1|Paul|200$ * 2|Joe|400$ * 3|James|100$ * 4|Carl|1000$ 不停地 用的第一行做一个表头,用其他行做一个单元格 页面上可能有4-5个s 为了给蛋糕加上糖霜,让我们把它从收入最大的人分到收入最小的人 我发现了这个问题: 恰恰相反。。。但也许是个好的开始?我不知道,我会查出来的。。。但这个问题仍然悬而未决 我发现了这个
,并用CSS将它做成一个漂亮的表格
我喜欢用jQuery进行转换
* Place|Name|Earning
* 1|Paul|200$
* 2|Joe|400$
* 3|James|100$
* 4|Carl|1000$
不停地
用
的第一行做一个表头,用其他行做一个单元格
页面上可能有4-5个
s
为了给蛋糕加上糖霜,让我们把它从收入最大的人分到收入最小的人
我发现了这个问题: 恰恰相反。。。但也许是个好的开始?我不知道,我会查出来的。。。但这个问题仍然悬而未决
我发现了这个问题: 恰恰相反。。。但也许是个好的开始?我不知道,我会查出来的。。。但这个问题仍然悬而未决
另一个与解决方案有关的问题 如果我想“删除”并将其替换为表 我不喜欢空桌子 这是代码。。。也许不是“优化”,但它是有效的
$('#texte').append('<div id="where_my_table_goes"></div>');
$('#where_my_table_goes').append(table);
$('#my_oddly_formatted_list').remove();
我甚至需要一个div吗
救命啊
它不起作用; 这是完整的一页,看看它应该做什么可能会有很大帮助 我使用延迟隐藏只是为了看到数据在那里 在按下标题后。。Tableize应该发生,删除旧ul并将其与表一起重新放置,然后滑动切换它
好的。。现在有状态了 我只知道编辑答案并发布。。。没有任何更新按钮 我想给你一个大拇指或任何可以帮助你的评级。。。我只是不知道怎么做 对于这个问题。。。你给我的东西,我已经仔细看过了。。而且它不起作用。。。让我们看看链接: 这里是错误:它切换标题
我太迷路了 如果您的HTML如下所示,您就是这样做的:
<ul id='my_oddly_formatted_list1' class='odd_list'>
<li>Column A|Column B|Column C</li>
<li>Value A1|Value B1|Value C1</li>
<li>Value A2|Value B1|Value C2</li>
<li>Value A3|Value B1|Value C3</li>
<li>Value A4|Value B1|Value C4</li>
</ul>
<ul id='my_oddly_formatted_list2' class='odd_list'>
<li>Column D|Column E|Column F</li>
<li>Value D1|Value E1|Value F1</li>
<li>Value D2|Value E1|Value F2</li>
<li>Value D3|Value E1|Value F3</li>
<li>Value D4|Value E1|Value F4</li>
</ul>
<ul id='my_oddly_formatted_list3' class='odd_list'>
<li>Column G|Column H|Column I</li>
<li>Value G1|Value H1|Value I1</li>
<li>Value G2|Value H1|Value I2</li>
<li>Value G3|Value H1|Value I3</li>
<li>Value G4|Value H1|Value I4</li>
</ul>
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();
});
};
就排序等而言,有许多方法可以为表提供此功能
**编辑**
代码的问题在于以下几行:
$(document).ready(function() {
/*$('#texte > h1').next().hide(1000); */
$('#texte > h1').click(function() {
$(this).tablerize();
/*$(this).next().toggle(500);*/
});
});
我编写的tablerize
插件需要一个
元素进行tablerize。当您传递它时,您传递的是匹配的h1
,而不是
。如果替换此行:
$(this).tablerize();
这一行将在标题后立即找到UL元素:
$(this).next('ul').tablerize();
它应该按照你的意愿工作
此外:
- 要更新您的问题,只需单击“编辑”并添加所需内容
- 要接受答案,请单击文本左侧的复选框
// tablerize all UL elements in the page
$('ul').tablerize();
// only UL elements with class 'odd_list'
$('ul.odd_list').tablerize();
// individually tablerize all the lists
$('#my_oddly_formatted_list1').tablerize();
$('#my_oddly_formatted_list2').tablerize();
$('#my_oddly_formatted_list3').tablerize();
$(document).ready(function() {
/*$('#texte > h1').next().hide(1000); */
$('#texte > h1').click(function() {
$(this).tablerize();
/*$(this).next().toggle(500);*/
});
});
$(this).tablerize();
$(this).next('ul').tablerize();