-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

これらの2つのフィドル(私は作者ではありません)でこれを解決できるはずです:

文字列でソート: 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 に答える