javascript實現Table排序的方法

來源:互聯網
上載者:User

javascript實現Table排序的方法

 本文執行個體講述了javascript實現Table排序的方法。分享給大家供大家參考。具體實現方法如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

<!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>表格排序</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() {

//獲得表格對象

var tblObj = document.getElementById("tblData");

//把行節點集合存放到臨時數組中,

//注意這裡存放的是表格行節點對象集合的引用

//後續把排序後的資料添加回表格時,不需要刪除行節點。

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);

//取最後一個字元(↑表示升序,↓表示降序)

if (sortFlag == "↑") {

tblObj.rows[0].cells[1].innerHTML = "<a href='javascript:void(0)' onclick='sortAge()'>年齡↓</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()'>年齡↑</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;

}

}

}

}

//把排序後的資料添加回表格,

//注意由於存放的是引用,所以不需要刪除原來的行

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>姓名</th>

<th><a href="javascript:void(0)" onclick="sortAge()">年齡↑</a></th>

<th>城市</th>

</tr>

<tr>

<td>張三</td>

<td>25</td>

<td>北京</td>

</tr>

<tr>

<td>李四</td>

<td>30</td>

<td>南昌</td>

</tr>

<tr>

<td>王五</td>

<td>21</td>

<td>鄭州</td>

</tr>

<tr>

<td>李莫</td>

<td>35</td>

<td>天津</td>

</tr>

<tr>

<td>肖麗</td>

<td>19</td>

<td>深圳</td>

</tr>

<tr>

<td>羅成</td>

<td>23</td>

<td>上海</td>

</tr>

</table>

</body>

</html>

希望本文所述對大家的javascript程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.