【问题标题】:Insert a table row alphabetically ordered in the table在表格中插入按字母顺序排列的表格行
【发布时间】:2015-06-28 13:38:11
【问题描述】:

我有一个按名称按字母顺序排列的表(使用 PHP mysql),现在我想在表中的正确位置插入一个新行,而不向服务器发出新请求。有没有办法通过表格检查每个名称并使用 jQuery/Javascript 在正确的位置插入新行?

【问题讨论】:

  • 你能提供一些你在做什么的代码吗?到目前为止,您还尝试过什么?
  • 看到这个link希望这会有所帮助。
  • 明白了.. 感谢 Mackan 和 extempl ^^

标签: javascript php jquery mysql insert


【解决方案1】:

有很多方法,这只是其中一种使用jquery的方法:

让我们设置你的新名称和新行 el

var newName = 'YourNewName'
var newRow = $('<tr>') // created new row element with cells

获取名称列表,添加新名称并对其进行排序;假设您的姓名列是 2

var names = $('td:nth-child(2)').map(function () {return $(this).text()})
names.push(newName)
var sorted = names.sort()

获取添加名称的位置

var newNamePos = sorted.indexOf(newName)

在找到的位置插入新行

$('tr:nth-child(' + (newNamePos + 1) + ')').before(newRow)

【讨论】:

    【解决方案2】:

    您也可以将其插入到最后(或任何地方),然后使用 js/jquery 重新排序整个表格:

    var table  = $('table'),
        rows   = $('tr', table);
    
    $('#sortIt').click(function () {
        rows.sort(function(a, b) {
            var keyA = $('td',a).text();
            var keyB = $('td',b).text();
            return (keyA > keyB) ? 1 : 0;
        }); 
        rows.each(function(index, row) {
            table.append(row);
        });
    });
    

    例如here at jsFiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 2012-10-21
      • 1970-01-01
      • 2020-11-26
      相关资源
      最近更新 更多