-1

我在 PHP 中有一个复杂的系统,如果我用 PHP 制作它,我需要通过 10 个不同的表来运行它,这非常耗费脑力。

现在我找到了自定义 jQuery 排序的解决方案,但找不到任何有用的示例来使其按我的方式工作。

我目前有一个应该对类型进行排序的链接(asc|desc)

我的条目循环目前是

<tr class="lol" onclick="location.href='<?=$productlink?>'" style="cursor:pointer">
<td style="width:250px;border-bottom:1px solid #eee"><?=$fullPath?></td>
<td style="width:250px;border-bottom:1px solid #eee">

    <!-- sortable -->
       <span class="hiddenPrice">25,000</span>
       <span class="hiddenKilometers">10,000</span>
       <span class="hiddenYear">1982</span>
       <span class="hiddenMake">Ford</span>
    <!-- /sortable -->

    <strong style="font-size:15px"><?=$row['varenavn1']?></strong><br>
    <em>Pris: <?=number_format($row['salgspris']);?> kr.</em>
    <p><?=substr(strip_tags($row['lang_varebeskrivelse']), 0, 150)?>...</p>

    <a href="<?=$productlink?>" class="greenButton" style="color:#fff">SE MERE</a><br>
</td>

我在跨度内有不同的值。但是我该如何排序。链接到这些价值观??

希望有人可以帮助我。

4

2 回答 2

0

将所有内容放在一个 div 中

 <div id ="sample">
   <span  type="spSort" class="hiddenPrice">25,000</span>
    <span  type="spSort" class="hiddenKilometers">10,000</span>
     <span  type="spSort" class="hiddenYear">1982</span>
    <span  type="spSort" class="hiddenMake">Ford</span>
</div>

这是脚本:

$(document).ready(function(){
   var new htmlString ="";
var list = [];
   var count= 0;

  //add all span to list
  $("#sample").find('span').each(function(){
   list[count] = $(this);
   count++;
};

 //sort by bubble sort




 for (var i = 0; i < list.length; i++) {


    for (var j = 0, swapping, endIndex = list.length- i; j < endIndex; j++) {


        if (list[j].html() > list[j + 1].html()) {

            swapping = list[j];

            list[j] = list[j + 1];
            list[j + 1] = swapping;

        };
    };
}

// add to htmlString
for(var i=0; i<list.length ; i++){
  htmlString += list[i];
}
// set again to div
  $("#sample").html(htmlString);
});
于 2013-09-11T09:31:59.227 回答
0

你应该可以用这两个小提琴(我不是作者)来解决这个问题:

按字符串排序:http: //jsfiddle.net/stodolaj/De8Ku/

    function sortUnorderedList(ul, sortDescending) {
      if(typeof ul == "string")
        ul = document.getElementById(ul);

      var lis = ul.getElementsByTagName("LI");
      var vals = [];

      for(var i = 0, l = lis.length; i < l; i++)
        vals.push(lis[i].innerHTML);

      vals.sort();

      if(sortDescending)
        vals.reverse();

      for(var i = 0, l = lis.length; i < l; i++)
        lis[i].innerHTML = vals[i];
    }

    window.onload = function() {
      var desc = false;
      document.getElementById("test").onclick = function() {
        sortUnorderedList("list", desc);
        desc = !desc;
        return false;
      }
    }

按数字排序:http: //jsfiddle.net/7y9MA/3/

var ascending = false;

$('.tab-content').on('click','.sortByPrice',function(){

    var sorted = $('.results-row').sort(function(a,b){
        return (ascending ==
               (convertToNumber($(a).find('.price').html()) < 
                convertToNumber($(b).find('.price').html()))) ? 1 : -1;
    });
    ascending = ascending ? false : true;

    $('.results').html(sorted);
});

var convertToNumber = function(value){
     return parseFloat(value.replace('$',''));
}
于 2013-09-11T09:04:48.870 回答