1

我有一个包含价格信息的 HTML 表。该表按价格升序排序。我希望用新的价格项目更新表格。我很确定 jquery 应该能够解决这个问题。这是我的起始表:

<table id='priceTable'>
<tr id="25607">
    <td>
        Item 1
    </td>
    <td>
        $256.07
    </td>
    <td>USD</td>
</tr>
<tr id="30100">
    <td>
        Item 2
    </td>
    <td>
        $301.00
    </td>
    <td>USD</td>
</tr>
<tr id="30557">
    <td>
        Item 3
    </td>
    <td>
        $305.57
    </td>
    <td>USD</td>
</tr>
</table>

我需要插入一个新行。

<tr id="29000">
        <td>
            Item 5
        </td>
        <td>
            $290.00
        </td>
        <td>USD</td>
    </tr>

此行需要插入到 id 25607 和 id 30100 之间。

我在想应该有一种方法可以使用 tr 的 id(只有数字的价格)。可能对 id 进行排序并找出应该插入新项目的位置。

4

3 回答 3

4

是的,jQuery 能够解决这个问题。

var row = '<tr id="29000"><td>Item 5</td><td>$290.00</td><td>USD</td></tr>';
var $tr = $(row);

$('#priceTable tr')
         .add($tr) // add the new tr to the collection
         .sort(function(a, b){  // sort them
             return a.id > b.id
         }) 
         .appendTo('#priceTable'); // end of the game

http://jsfiddle.net/PTxjk/

于 2012-12-06T03:37:31.670 回答
-1

您可以使用以下after()方法:

$('#25607').after("<tr id='29000'>....");
于 2012-12-06T03:37:25.780 回答
-1

你可以使用 jQuery after() 和 before() 方法

jQuery after() 方法在选定的 HTML 元素之后插入内容。

jQuery before() 方法在选定的 HTML 元素之前插入内容。

$('#25607').after("<tr id='29000'>....");

或者

$('#30100').before("<tr id='29000'>....");
于 2012-12-06T03:41:58.910 回答