在document.ready中进行jQuery排序

时间:2014-08-07 12:14:14

标签: jquery

如何在document.ready中调用此排序功能?

$('div').sort(function (a, b) {

      var contentA =parseInt( $(a).attr('data-sort'));
      var contentB =parseInt( $(b).attr('data-sort'));
      return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
   })

我试过这样,但它不起作用

 $(document).ready(function () {

        $('div').sort(function (a, b) {

        var contentA = parseInt($(a).attr('data-sort'));
        var contentB = parseInt($(b).attr('data-sort'));
        return (contentA > contentB) ? -1 : (contentA < contentB) ? 1 : 0;

    })
    });

4 个答案:

答案 0 :(得分:0)

将其粘贴在$(document).ready(function() { ... });

e.g。

$(document).ready(function() {
    $('div').sort(function (a, b) {

      var contentA =parseInt( $(a).attr('data-sort'));
      var contentB =parseInt( $(b).attr('data-sort'));
      return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;
   });
});

答案 1 :(得分:0)

使用document.ready()

  $( document ).ready(function() {
    // your document is ready
    sortyourcoolstuff();
    });

并且,正如C-Link尼泊尔所说,使用三元运算符是错误的。

return (contentA < contentB) ? 1 : 0;

如果b>a,则会返回1,else 0.根据您自己的背景更改它。

答案 2 :(得分:0)

应该是这样的:

$(document).ready(function(){
   $('div').sort(function (a, b) {

      var contentA = a.getAttribute('data-sort'));
      var contentB = b.getAttribute('data-sort'));
      if(contentA > contentB ) {
        return 1;
       }
      if(contentA < contentB ) {
        return -1;
      }
      return 0;
     });
});

答案 3 :(得分:0)

如果您的意思是扩展Jquery原型,则需要在代码之前添加以下内容:

jQuery.fn.extend({
     sort: function(a, b){
          var contentA =parseInt( $(a).attr('data-sort'));
          var contentB =parseInt( $(b).attr('data-sort'));
          return (contentA < contentB) ? -1 : (contentA > contentB) ? 1 : 0;         
   }
});