| <! DOCTYPE html PUBLIC "-// W3C // dtd xhtml 1.0 Transitional // EN" Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> <Html xmlns = "http://www.w3.org/1999/xhtml"> <Head> <Meta http-equiv = "Content-Type" content = "text/html; charset = UTF-8"/> <Title> table sorting </title> <Style type = "text/css"> Body { Margin: 0; Padding: 0; Font-size: 14px; } Table, td, th { Border: 1px solid red; } Th { Width: 100px; Background: pink; } Table { Margin: 0 auto; } A { Text-decoration: none; } </Style> <Script type = "text/javascript"> Function sortAge (){ // Obtain the table object Var tblObj = document. getElementById ("tblData "); // Store the row node set in a temporary array, // Note that reference is stored in the table row Node object set. // You do not need to delete row nodes when adding sorted data back to the table. Var rowNodes = tblObj. rows; Var arrTemp = new Array (); For (var I = 1; I <rowNodes. length; I ++ ){ ArrTemp [I-1] = rowNodes [I]; } Var sortFlag = tblObj. rows [0]. cells [1]. innerText; SortFlag = sortFlag. charAt (sortFlag. length-1 ); // Obtain the last character (ascending and descending) If (sortFlag = "latency "){ TblObj. rows [0]. cells [1]. innerHTML = "<a href = 'javascript: void (0) 'onclick = 'sortage () '> age groups </a> "; For (var I = 0; I <arrTemp. length; I ++ ){ For (var j = I + 1; j <arrTemp. length; j ++ ){ If (parseInt (arrTemp [j]. cells [1]. innerText) <parseInt (arrTemp [I]. cells [1]. innerText )){ Var temp = arrTemp [I]; ArrTemp [I] = arrTemp [j]; ArrTemp [j] = temp; } } } } Else { TblObj. rows [0]. cells [1]. innerHTML = "<a href = 'javascript: void (0) 'onclick = 'sortage () '> age groups </a> "; For (var I = 0; I <arrTemp. length; I ++ ){ For (var j = I + 1; j <arrTemp. length; j ++ ){ If (parseInt (arrTemp [j]. cells [1]. innerText)> parseInt (arrTemp [I]. cells [1]. innerText )){ Var temp = arrTemp [I]; ArrTemp [I] = arrTemp [j]; ArrTemp [j] = temp; } } } } // Add the sorted data back to the table, // Note that the original row does not need to be deleted because it stores references. Var TBodyObj = tblObj. childNodes [0]; For (var I = 0; I <arrTemp. length; I ++ ){ TBodyObj. appendChild (arrTemp [I]); } } </Script> </Head> <Body> <Table id = "tblData" cellspacing = "0px" cellpadding = "5px"> <Tr> <Th> name </th> <Th> <a href = "javascript: void (0)" onclick = "sortAge ()"> age groups </a> </th> <Th> city </th> </Tr> <Tr> <Td> JOHN </td> <Td> 25 </td> <Td> Beijing </td> </Tr> <Tr> <Td> Li Si </td> <Td> 30 </td> <Td> Nanchang </td> </Tr> <Tr> <Td> Wang Wu </td> <Td> 21 </td> <Td> Zhengzhou </td> </Tr> <Tr> <Td> Li Mo </td> <Td> 35 </td> <Td> Tianjin </td> </Tr> <Tr> <Td> Xiao LI </td> <Td> 19 </td> <Td> Shenzhen </td> </Tr> <Tr> <Td> Luo Cheng </td> <Td> 23 </td> <Td> Shanghai </td> </Tr> </Table> </Body> </Html> |