X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Сортировка строк в таблице
elis19
elis19
Topic Starter сообщение 12.10.2012, 8:11; Ответить: elis19
Сообщение #1


Понимаю что элементарно, но НЕ ЗНАЮ!
Подключаю на странице скрипт сортировки таблицы:
<script type="text/javascript" src="script.js"></script>
    <script type="text/javascript">
  var sorter = new TINY.table.sorter("sorter");
    sorter.head = "head";
    sorter.asc = "asc";
    sorter.desc = "desc";
    sorter.even = "evenrow";
    sorter.odd = "oddrow";
    sorter.evensel = "evenselected";
    sorter.oddsel = "oddselected";
    sorter.paginate = true;
    sorter.currentid = "currentpage";
    sorter.limitid = "pagelimit";
    sorter.init("table",1);
  </script>

Надо чтобы стили строк вместо "зебры"
sorter.even = "evenrow";
sorter.odd = "oddrow";

Принимали значение в зависимости от данных в ячейке:
$('td:contains("продана")').parent().addClass('sale');

Подключаемый файл:
var TINY={};

function T$(i){return document.getElementById(i)}
function T$$(e,p){return p.getElementsByTagName(e)}

TINY.table=function(){
    function sorter(n){this.n=n; this.pagesize=20; this.paginate=0}
    sorter.prototype.init=function(e,f){
        var t=ge(e), i=0; this.e=e; this.l=t.r.length; t.a=[];
        t.h=T$$('thead',T$(e))[0].rows[0]; t.w=t.h.cells.length;
        for(i;i<t.w;i++){
            var c=t.h.cells[i];
            if(c.className!='nosort'){
                c.className=this.head; c.onclick=new Function(this.n+'.wk(this.cellIndex)')
            }
        }
        for(i=0;i<this.l;i++){t.a[i]={}}
        if(f!=null){var a=new Function(this.n+'.wk('+f+')'); a()}
        if(this.paginate){this.g=1; this.pages()}
    };
    sorter.prototype.wk=function(y){
        var t=ge(this.e), x=t.h.cells[y], i=0;
        for(i;i<this.l;i++){
      t.a[i].o=i; var v=t.r[i].cells[y]; t.r[i].style.display='';
      while(v.hasChildNodes()){v=v.firstChild}
      t.a[i].v=v.nodeValue?v.nodeValue:''
    }
        for(i=0;i<t.w;i++){var c=t.h.cells[i]; if(c.className!='nosort'){c.className=this.head}}
        if(t.p==y){t.a.reverse(); x.className=t.d?this.asc:this.desc; t.d=t.d?0:1}
        else{t.p=y; t.a.sort(cp); t.d=0; x.className=this.asc}
        var n=document.createElement('tbody');
        for(i=0;i<this.l;i++){
            var r=t.r[t.a[i].o].cloneNode(true); n.appendChild(r);
            r.className=i%2==0?this.even:this.odd; var cells=T$$('td',r);
            for(var z=0;z<t.w;z++){cells[z].className=y==z?i%2==0?this.evensel:this.oddsel:''}
        }
        t.replaceChild(n,t.b); if(this.paginate){this.size(this.pagesize)}
    };
    sorter.prototype.page=function(s){
        var t=ge(this.e), i=0, l=s+parseInt(this.pagesize);
        if(this.currentid&&this.limitid){T$(this.currentid).innerHTML=this.g}
        for(i;i<this.l;i++){t.r[i].style.display=i>=s&&i<l?'':'none'}
    };
    sorter.prototype.move=function(d,m){
        var s=d==1?(m?this.d:this.g+1):(m?1:this.g-1);
        if(s<=this.d&&s>0){this.g=s; this.page((s-1)*this.pagesize)}
    };
    sorter.prototype.size=function(s){
        this.pagesize=s; this.g=1; this.pages(); this.page(0);
        if(this.currentid&&this.limitid){T$(this.limitid).innerHTML=this.d}
    };
    sorter.prototype.pages=function(){this.d=Math.ceil(this.l/this.pagesize)};
    function ge(e){var t=T$(e); t.b=T$$('tbody',t)[0]; t.r=t.b.rows; return t};
    function cp(f,c){
        var g,h; f=g=f.v.toLowerCase(), c=h=c.v.toLowerCase();
        var i=parseFloat(f.replace(/(\$|\,)/g,'')), n=parseFloat(c.replace(/(\$|\,)/g,''));
        if(!isNaN(i)&&!isNaN(n)){g=i,h=n}
        i=Date.parse(f); n=Date.parse(c);
        if(!isNaN(i)&&!isNaN(n)){g=i; h=n}
        return g>h?1:(g<h?-1:0)
    };
    return{sorter:sorter}
}();


Если кто ответит - большое человеческое спасибо!
з.ы. Если можно, с пояснением. Обещаю начать изучать
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
cyber_ua
cyber_ua
сообщение 12.10.2012, 9:04; Ответить: cyber_ua
Сообщение #2


(elis19 @ 12.10.2012, 11:11) *
з.ы. Если можно, с пояснением. Обещаю начать изучать

начинайте щас;)
дойдете до конца раздела и сможете реализовать то что вам нужно.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Php - скрипт. Сравнение строк в csv файлах
2 PoliteX 2499 21.7.2015, 11:50
автор: PoliteX
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыБаза фильмов для киносайта. 10 тыс строк
0 seo-x 2354 20.7.2015, 14:39
автор: seo-x
Открытая тема (нет новых ответов) Нужна помощь с DLE (сортировка новостей)
0 dimonsuper 3217 7.1.2015, 15:19
автор: dimonsuper
Открытая тема (нет новых ответов) Помогите сделать подсчет в таблице из из базы данных на сайте
2 Сергей климанов 3303 13.7.2012, 23:40
автор: -Сергей климанов-
Открытая тема (нет новых ответов) Увеличивается высота строк в таблице
2 Rugstad 6402 2.4.2011, 15:14
автор: -Rugstad-


 



RSS Текстовая версия Сейчас: 25.4.2024, 23:54
Дизайн