最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 帶有滾動(dòng)條的表格,標(biāo)題固定,帶排序功能.

 更新時(shí)間:2009年11月13日 23:48:50   作者:  
帶有滾動(dòng)條的表格,標(biāo)題固定,帶排序功能. 雖然經(jīng)測(cè)試有點(diǎn)問(wèn)題,但編程思路很清晰,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:

//使用要求:
//1.將表格的Class命名為:sorttableHold,
//2.表格放置在一個(gè)div中,此div設(shè)有overflow屬性.
//3.表格要求有ID,div要求有ID
//4.要有JQuery.min.js文件
//5.OK.


addEvent(window, "load", sortables_init);

var SORT_COLUMN_INDEX;

function sortables_init() {
// Find all tables with class sortable and make them sortable
if (!document.getElementsByTagName) return;
tbls = document.getElementsByTagName("table");
for (ti=0;ti<tbls.length;ti++) {
thisTbl = tbls[ti];
if (((' '+thisTbl.className+' ').indexOf("sorttableHold") != -1) && (thisTbl.id)) {
//initTable(thisTbl.id);
ts_makeSortable(thisTbl);
}
}
}

function ts_makeSortable(table) {
if (table.rows && table.rows.length > 0) {
var firstRow = table.rows[0];
}
if (!firstRow) return;

// We have a first row: assume it's the header, and make its contents clickable links
for (var i=0;i<firstRow.cells.length;i++) {
var cell = firstRow.cells[i];
var txt = ts_getInnerText(cell);
cell.innerHTML = '<a href="#" class="sortheader" '+
'onclick="ts_resortTable(this, '+i+');return false;">' +
txt+'<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a>';
}
if(table!=undefined)//分離
{
$('<div id="'+table.id+'Title"></div>').insertBefore('#'+table.parentNode.parentNode.id);//創(chuàng)建DIV
var div_title=document.getElementById(table.id+'Title');
var title = table.cloneNode(true)//all再?gòu)?fù)制給title
for(i = title.rows.length -1;i >0;i--)//把title中內(nèi)容全部刪除,只留第一行,也就是標(biāo)題
title.deleteRow(i)
table.deleteRow(0)//GridView中第一行(標(biāo)題)刪除,也就只有內(nèi)容了
div_title.appendChild(title) //標(biāo)題給div
$("#"+div_title.id+" table:eq(0)").attr("id",div_title.id+"1");
$(table).removeAttr("class");
}

}
function ts_getInnerText(el) {
if (typeof el == "string") return el;
if (typeof el == "undefined") { return el };
if (el.innerText) return el.innerText; //Not needed but it is faster
var str = "";

var cs = el.childNodes;
var l = cs.length;
for (var i = 0; i < l; i++) {
switch (cs[i].nodeType) {
case 1: //ELEMENT_NODE
str += ts_getInnerText(cs[i]);
break;
case 3: //TEXT_NODE
str += cs[i].nodeValue;
break;
}
}
return str;
}

function ts_resortTable(lnk,clid) {
// get the span
var span;
for (var ci=0;ci<lnk.childNodes.length;ci++) {//獲取標(biāo)題中的Span
if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
}
var spantext = ts_getInnerText(span);//標(biāo)題Span內(nèi)容
var td = lnk.parentNode;//單元格
var column = clid || td.cellIndex;//列
var tablecurrent = getParent(td,'TABLE');//表
var tableid=tablecurrent.id.substring(0,tablecurrent.id.length-6);
var table=document.getElementById(tableid);
// Work out a type for the column
if (table.rows.length <= 1) return;
var itm = ts_getInnerText(table.rows[0].cells[column]);
sortfn = ts_sort_caseinsensitive;
if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date;
if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date;
if (itm.match(/^[?]/)) sortfn = ts_sort_currency;
if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric;
SORT_COLUMN_INDEX = column;
var firstRow = new Array();
var newRows = new Array();
for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }
for (j=0;j<table.rows.length;j++) { newRows[j] = table.rows[j]; }

newRows.sort(sortfn);

if (span.getAttribute("sortdir") == 'down') {
ARROW = '&nbsp;&nbsp;&uarr;';
newRows.reverse();
span.setAttribute('sortdir','up');
} else {
ARROW = '&nbsp;&nbsp;&darr;';
span.setAttribute('sortdir','down');
}

// We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
// don't do sortbottom rows
for (i=0;i<newRows.length;i++)
{ if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}
// do sortbottom rows only
for (i=0;i<newRows.length;i++)
{ if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}

// Delete any other arrows there may be showing
var allspans = document.getElementsByTagName("span");
for (var ci=0;ci<allspans.length;ci++) {
if (allspans[ci].className == 'sortarrow') {
if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?
allspans[ci].innerHTML = '&nbsp;&nbsp;&nbsp;';
}
}
}

span.innerHTML = ARROW;
$('#'+tableid+' tr:even').css("background-color","FFF7E8");
$('#'+tableid+' tr:odd').css("background-color","#CCE8CF");
}

function getParent(el, pTagName) {
if (el == null) return null;
else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase
return el;
else
return getParent(el.parentNode, pTagName);
}
function ts_sort_date(a,b) {
// y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
if (aa.length == 10) {
dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
} else {
yr = aa.substr(6,2);
if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
}
if (bb.length == 10) {
dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
} else {
yr = bb.substr(6,2);
if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
}
if (dt1==dt2) return 0;
if (dt1<dt2) return -1;
return 1;
}

function ts_sort_currency(a,b) {
aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
return parseFloat(aa) - parseFloat(bb);
}

function ts_sort_numeric(a,b) {
aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));
if (isNaN(aa)) aa = 0;
bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX]));
if (isNaN(bb)) bb = 0;
return aa-bb;
}

function ts_sort_caseinsensitive(a,b) {
aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();
bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();
if (aa==bb) return 0;
if (aa<bb) return -1;
return 1;
}

function ts_sort_default(a,b) {
aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
if (aa==bb) return 0;
if (aa<bb) return -1;
return 1;
}


function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+, NS6 and Mozilla
// By Scott Andrew
{
if (elm.addEventListener){
elm.addEventListener(evType, fn, useCapture);
return true;
} else if (elm.attachEvent){
var r = elm.attachEvent("on"+evType, fn);
return r;
} else {
alert("Handler could not be removed");
}
}

相關(guān)文章

  • 使用Javascript簡(jiǎn)單計(jì)算器

    使用Javascript簡(jiǎn)單計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了使用Javascript簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 微信小程序宿主環(huán)境基礎(chǔ)介紹

    微信小程序宿主環(huán)境基礎(chǔ)介紹

    這篇文章主要介紹了微信小程序宿主環(huán)境的基礎(chǔ)知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • js實(shí)現(xiàn)Select頭像選擇實(shí)時(shí)預(yù)覽代碼

    js實(shí)現(xiàn)Select頭像選擇實(shí)時(shí)預(yù)覽代碼

    這篇文章主要介紹了js實(shí)現(xiàn)Select頭像選擇實(shí)時(shí)預(yù)覽代碼,涉及javascript動(dòng)態(tài)遍歷及設(shè)置select選項(xiàng)的技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • JS中video標(biāo)簽自動(dòng)播放音視頻并繪制波形圖效果

    JS中video標(biāo)簽自動(dòng)播放音視頻并繪制波形圖效果

    html中的<video>標(biāo)簽可以用來(lái)播放常見(jiàn)的音視頻格式,支持的格式包括:MP3、Ogg、WAV、AAC、MP4、WebM、AVI等,當(dāng)然支持的格式也和瀏覽器和操作系統(tǒng)有關(guān),這篇文章主要介紹了video標(biāo)簽自動(dòng)播放音視頻并繪制波形圖,需要的朋友可以參考下
    2023-09-09
  • 解決layui 三級(jí)聯(lián)動(dòng)下拉框更新時(shí)回顯的問(wèn)題

    解決layui 三級(jí)聯(lián)動(dòng)下拉框更新時(shí)回顯的問(wèn)題

    今天小編就為大家分享一篇解決layui 三級(jí)聯(lián)動(dòng)下拉框更新時(shí)回顯的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • 整理一下常見(jiàn)的IE錯(cuò)誤

    整理一下常見(jiàn)的IE錯(cuò)誤

    多年以來(lái),IE一直都是最難于調(diào)試JavaScript 錯(cuò)誤的瀏覽器。IE給出的錯(cuò)誤消息一般很短又語(yǔ)焉不詳。而且上下文信息也很少,有時(shí)甚至一點(diǎn)都沒(méi)有。下面幾小節(jié)將分別探討一些在IE中難于調(diào)試的JavaScript 錯(cuò)誤
    2016-11-11
  • JS+Canvas實(shí)現(xiàn)上傳圖片截圖功能

    JS+Canvas實(shí)現(xiàn)上傳圖片截圖功能

    在我們平時(shí)開(kāi)發(fā)圖片上傳時(shí),有時(shí)需要實(shí)現(xiàn)圖片的裁剪功能,這篇文章主要為大家介紹了如何使用Canvas實(shí)現(xiàn)上傳圖片截圖功能,希望對(duì)大家有所幫助
    2023-10-10
  • js實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)非select下拉框版

    js實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)非select下拉框版

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)非select下拉框版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 全面了解javascript三元運(yùn)算符

    全面了解javascript三元運(yùn)算符

    下面小編就為大家?guī)?lái)一篇全面了解javascript三元運(yùn)算符。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • js,jQuery 排序的實(shí)現(xiàn)代碼,網(wǎng)頁(yè)標(biāo)簽排序的實(shí)現(xiàn),標(biāo)簽排序

    js,jQuery 排序的實(shí)現(xiàn)代碼,網(wǎng)頁(yè)標(biāo)簽排序的實(shí)現(xiàn),標(biāo)簽排序

    js,jQuery 排序的實(shí)現(xiàn),網(wǎng)頁(yè)標(biāo)簽排序的實(shí)現(xiàn),標(biāo)簽排序,需要的朋友可以參考下。
    2011-04-04

最新評(píng)論

芦山县| 金川县| 庄河市| 尖扎县| 肥城市| 印江| 杭锦旗| 凤台县| 即墨市| 西平县| 喜德县| 台北县| 墨竹工卡县| 双峰县| 凤台县| 天台县| 翼城县| 旬阳县| 堆龙德庆县| 缙云县| 应用必备| 太原市| 海伦市| 鄂尔多斯市| 陕西省| 宁南县| 盱眙县| 合水县| 安宁市| 蒙阴县| 双辽市| 林西县| 鹤峰县| 政和县| 修文县| 恩施市| 额济纳旗| 通海县| 鄢陵县| 洞头县| 韶山市|