Javascript CSS:如何动态增长/收缩HTML表列

Javascript CSS:如何动态增长/收缩HTML表列,javascript,jquery,html,dom,css,Javascript,Jquery,Html,Dom,Css,我有这样一个HTML: <table> <tr> <th>colA heading</th> <th>colb heading</th> </tr> <tr> <td>colA content</td> <td>colb content</td> </tr> <tr> <th>c

我有这样一个HTML:

<table>
<tr>
    <th>colA heading</th>
    <th>colb heading</th>
</tr>
<tr>
    <td>colA content</td>
    <td>colb content</td>
</tr>
<tr>
    <th>colC heading</th>
    <th>colD heading</th>
</tr>
<tr>
    <td>colC content</td>
    <td>colC content</td>
</tr>
</table>

可乐头
冷穗
可乐含量
冷含量
colC标题
冷镦
colC含量
colC含量
该产品具有以下输出:

可乐头可乐头
可乐含量可乐含量
冷镦 冷含量冷含量

我想做的是使用JavaScript进行检测,如果页面足够宽,动态更改我的表,如下所示:

可乐抽穗可乐抽穗可乐抽穗可乐抽穗冷抽穗
可乐含量可乐含量可乐含量可乐含量冷含量

我如何使用HTML(以及JavaScript/CSS,如果需要的话)做到这一点

谢谢你,特德

这可能更像是一个(文档对象模型)问题吗

从维基页面引用(因为我在这方面缺乏实际经验):

网络浏览器

web浏览器没有义务使用DOM来呈现HTML文档。但是,希望动态检查或修改网页的JavaScript脚本需要DOM。换句话说,文档对象模型是JavaScript查看其包含HTML页面和浏览器状态的方式


因此,您可以尝试搜索一些关于使用Javascript DOM技术的HOWTO文档。

如果我正确理解您的问题,可以通过将表拆分为两个表来实现,如下所示:

<head>
    <style>
        .bigBox {
            margin: 0px;
            padding: 0px;
            float: left;
            clear: right;
            display: inline;
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <table class="bigBox">
        <tr>
            <th>colA heading</th>
            <th>colb heading</th>
        </tr>
        <tr>
            <td>colA content</td>
            <td>colb content</td>
        </tr>
    </table>
    <table class="bigBox">
        <tr>
            <th>colC heading</th>
            <th>colD heading</th>
        </tr>
        <tr>
            <td>colC content</td>
            <td>colC content</td>
        </tr>
    </table>
</body>

bigBox先生{
边际:0px;
填充:0px;
浮动:左;
清楚:对,;
显示:内联;
边框:1px纯黑;
}
可乐头
冷穗
可乐含量
冷含量
colC标题
冷镦
colC含量
colC含量

边界只是为了便于测试。测试所要做的就是将其中一个单元格的内容设置为“colb headinggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg。”

您如何确定该表格是否可以放在一

你是从两张桌子开始,还是从一张桌子开始

最简单的方法是从一个表开始,如果滚动条处于活动状态,则执行类似以下小片段的操作。您应该在firefox中使用firebug来检查表的dom属性,以确定要使用的属性

var tableelem = document.createElement('table');
var thead = document.createElement('thead');
for(var t = 0; t < 2; t++) {
  var trow = document.createElement('tr');
  var tdata = document.createElement('td');
  tdata.appendChild(document.createTextNode('header'));
  thead.appendChild(trow);
}
tableelem.appendChild(thead);
var tableleem=document.createElement('table');
var thead=document.createElement('thead');
对于(var t=0;t<2;t++){
var trow=document.createElement('tr');
var tdata=document.createElement('td');
tdata.appendChild(document.createTextNode('header'));
附肢儿童(trow);
}
附肢儿童表(thead);
您需要使用
document.getElementById
获取要从中提取的表,然后标题将位于
table.rows[0]
中,这样您就可以分析该行中的单元格并获取我将标题放在上面的值


然后,您需要使用
appendChild
功能将
tableem
添加到div中。

只是为了澄清一下,您是否同意A、B和C在一行,D在下一行?或者A/B和C/D必须是一揽子交易吗?@Torgamus勋爵,要么1)A&B在一行,C&D在另一行,要么2)A、B、C&D都在一行。所以不,一行的ABC和另一行的D不起作用。。。不会是一条线上的A和一条线上的BCDanother@Jim丹尼斯,谢谢。不幸的是,我自己还没弄明白怎么做。。。这就是为什么我在Stackoverflow上创建了这个主题。答案很好,但缺点是,从语义上讲,它不再是一个表,但在这种特定情况下,这可能不是问题。