如何在一个Html`table`中替换第一个带有JavaScript的`td` Html标签的第th个Html标签

时间:2014-03-06 13:55:52

标签: javascript jquery html

我使用jQuery-Visualize Filament Group, Inc.生成由HTML表格元素驱动的HTML5画布图表。

当使用多维表时,此插件的要求是ththead中的第一个tr需要为td。< / p>

我的表格如下:

<table>
    <thead>
        <tr>
            <th>...</th> <!--This element-->
            <th>...</th>
            <th>...</th>
            <th>...</th>
            <th>...</th>
            <th>...</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>...</th>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
        </tr>
        ...
    </tbody>
</table>

但插件需要这个,否则它会为图形添加一个额外的空分类,这会改变图形布局:

<table>
    <thead>
        <tr>
            <td>...</td><!--Needs to be-->
            <th>...</th>
            <th>...</th>
            <th>...</th>
            <th>...</th>
            <th>...</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>...</th>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
            <td>...</td>
        </tr>
        ...
    </tbody>
</table>

我在jsFiddle上有一个示例来说明问题。

如何使用Javascript / jQuery更改表格?

5 个答案:

答案 0 :(得分:3)

尝试使用:

$('tr th:eq(0)').replaceWith(function(){
    return $("<td />").append($(this).contents());
});

或更容易理解:

$('tr th:first').each(function() {
    $(this).replaceWith("<td>" + $(this).html() + "</td>");
});

答案 1 :(得分:1)

你可以使用

 $(document).ready(function () {
        $("th:first").replaceWith("<td/>",{text:"....."});
    });

答案 2 :(得分:0)

您可以使用jQuery实现此目的。 试试这段代码:

$(document).ready(function () {
   $("tr:first-child th").each(function() {
      $(this).replaceWith('<td>' + $(this).html() + '</td>'); 
   });
});

答案 3 :(得分:0)

怎么样:

$('tr>th').first().replaceWith('<td></td>');

如果它不起作用:

$('tr>th').first().replaceWith($('<td></td>'));

答案 4 :(得分:0)

试试这种方式

HTML CODE:

     <table id="Tbl">
      <tr>
       <th>Hello</th>
       <th>...</th>
       <th>...</th>
       <th>...</th>
       <th>...</th>
       <th>...</th>
      </tr>
    </table>

JQUERY CODE:

    $('th:eq(0)').replaceWith('<td>'+$('th:eq(0)').html()+'</td>');

现场演示:

http://jsfiddle.net/dreamweiver/LPzs8/6/

编辑:更正了代码,使其更符合要求

快乐编码:)