我怎么能在我想要的桌子上添加我的td?

时间:2012-02-24 14:20:17

标签: javascript jquery html

 <tbody>
    <tr class="th">
        <td>
            this is a heead
        </td>
        <td>
        </td>
    </tr>
    <tr>
        <td>
            Half Pallets
        </td>
        <td>4 Full Pallet
        </td>
    </tr>
     <tr>
        <td>

        <td>4 Full Pallet
        </td>
    </tr>
</tbody>

看看,假设我想在第一个tr.th添加tr然后我想在最后一个tr然后第一个tr.th设置它们,但是我怎么做。

如果它们在表中是多个tr.th那么我需要在我的情况下从最后一个tr.th设置tr。

你能否告诉我如何做到这一点。

感谢

2 个答案:

答案 0 :(得分:1)

你可以这样做(我打算你想在表的末尾添加一个新的<tr>:如果最后一个<tr>th类,你想添加新的<tr>之前的<tr class="th">

//get the last tr
var trLast = $('tr:last');
//create a tr to add
var trToAdd = $('<tr>');
//if the last tr has the class th
if(trLast.hasClass('th'){
   //add the new tr before the last
   trLast.before(trToAdd);
}else{
   //add the new tr after the last
   trLast.after(trToAdd);
}

答案 1 :(得分:1)

假设你有一些像这样的HTML:

<table>
    <tbody>
        <tr class="th">
            <td>Some header</td>
        </tr>
        <tr>
            <td>Some data</td>
        </tr>
        <tr>
            <td>Some more data</td>
        </tr>
        <tr class="th">
            <td>Another header</td>
        </tr>
        <tr>
            <td>Some data</td>
        </tr>
        <tr>
            <td>Some more data</td>
        </tr>
    </tbody>
</table>

然后我假设您希望生成的HTML看起来像这样:

<table>
    <tbody>
        <tr class="th">
            <td>Some header</td>
        </tr>
        <tr>
            <td>Some data</td>
        </tr>
        <tr>
            <td>Some more data</td>
        </tr>
        <tr>
            <td>A new bit of data in a new row</td>
        </tr>
        <tr class="th">
            <td>Another header</td>
        </tr>
        <tr>
            <td>Some data</td>
        </tr>
        <tr>
            <td>Some more data</td>
        </tr>
    </tbody>
</table>

在这种情况下,您可以使用以下jQuery:

var headerRows = $('tr.th');

if(headerRows.length > 1) {
    var headerRow = headerRows.get(1);
    $(headerRow).before('<tr><td>A new bit of data in a new row</td></tr>');
}
else if(headerRows.length == 1) {
    var headerRow = headerRows.get(0);
    $(headerRow).closest('tbody').append('<tr><td>A new bit of data in a new row</td></tr>');
}
else {
    // no header rows - do nothing?
}

Working DEMO

或者,当点击具有类<tr>的{​​{1}}元素时,在下一个th元素之前添加新行的小提琴:<tr> {3}}