【问题标题】:Jquery set tr with empty td lower than with text in tdJquery 将 tr 设置为空 td 低于 td 中的文本
【发布时间】:2012-11-14 21:11:40
【问题描述】:

我有 html 和 jquery 来对我的表格进行排序(也有非标准排序(使用多 tbody))。

我的代码可以在这里找到:http://jsfiddle.net/GuRxj/

如您所见,带有价格的 td(在俄罗斯 Цена 上)按升序排序(但技术不是!?为什么?(这也是一个问题))...但是如您所见,我需要发送这个tr 的价格在这个 tbody 的顶部(现在在底部),而 empty-price-tr 发送到底部...... 如何做到这一点?

部分js:

$('.prcol').click(function(e) {
      var $sort = this;
      var $table = $('#articles-table');
      var $rows = $('tbody.analogs_art > tr',$table);
      $rows.sort(function(a, b){
          var keyA = $('td:eq(3)',a).text();
          var keyB = $('td:eq(3)',b).text();
            if (keyA.length > 0 && keyB.length > 0)
            {
              if($($sort).hasClass('asc')){
                  console.log("bbb");
                  return (keyA > keyB) ? 1 : 0;
              } else {
                console.log(keyA+"-"+keyB);
                  return (keyA > keyB) ? 1 : 0;
              }
            }
      });
      $.each($rows, function(index, row){
        //console.log(row);
        $table.append(row);
        //$("table.123").append(row);
      });
      e.preventDefault();
    });

【问题讨论】:

  • var $sort = this; 让人们感到困惑。如果变量以$ 为前缀,人们期望它包含一个jQuery 对象。
  • @ThiefMaster 我从这里拿它:designchemical.com/blog/index.php/jquery/…
  • 你不应该只是复制和粘贴潜在的错误代码...
  • @ThiefMaster 在这里提供更好的建议stackoverflow.com/questions/13376751/… 但是我没有找到好的解决方案,没有使用库!
  • @ThiefMaster 写的不错,但不要给空洞的建议

标签: javascript jquery html


【解决方案1】:

固定演示 http://jsfiddle.net/RwW9q/3/ http://jsfiddle.net/tcZNH/

其余代码应该清晰易懂,

Надеюсь, что это FIDS ваши потребности :)(希望它符合您的需要,)

代码

jQuery(function($) {
    var table = $('table');
    $(document).ready(function() {
        $('.prcol').click(function(e) {
            var $sort = this;
            var $table = $('#articles-table');
            var $rows = $('tbody.analogs_art > tr', $table);
            $rows.sort(function(a, b) {
                var keyA = $('td:eq(3)', a).text().toUpperCase();;
                var keyB = $('td:eq(3)', b).text().toUpperCase();;

                if (keyA.length > 0 && isNaN(parseFloat($('td:eq(3)', b).text()))) return Ascending(keyA, keyB);
            });
            $.each($rows, function(index, row) {
                //console.log(row);
                $table.append(row);
                //$("table.123").append(row);
            });
            e.preventDefault();
        });
    });
});

function Ascending(a, b) {
    if (a > b) return -1;
    if (a < b) return 1;
    return 0;
}​

【讨论】:

  • 也许适合 :D 但为什么它不排序?我点击...什么也没有?
  • @PavelBY jsfiddle.net/RwW9q/3 您正在点击标题上的 Цена 对吗?对我来说分类很好:)我在 mac air - Lion O/S.
  • lol @PavelBY :)) MAGIC 确实,很好,所以它可以在 chrome 中工作耶,不确定,再次检查或输入 debugger 关键字并在 ff 中调试它。但它应该可以工作,早上我也在 ff、chrome 等中进行了测试。
  • @PavelBY 哈哈,在 safari 中工作,ff :) 重新安装有问题,或者在 firefox 站点 :) 中引发错误 很高兴 它可以工作。
  • 嗯,opera 和 ie... 有 ff... 代码中的东西怎么样?你有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2015-02-11
  • 2012-01-28
  • 2014-12-06
  • 2020-01-02
  • 2019-05-22
  • 2011-02-13
  • 2012-10-30
  • 1970-01-01
相关资源
最近更新 更多