Jquery操作select

最近使用JQuery来编写前端js脚本,涉及到依据下拉框的值确定其他下拉框中数据项。需要实现对下拉框中候选项的添加删除等,使用js写的话简直会死人的。还好使用JQuery。以下是操作 下拉列表的常用功能:

1.获取列表项中候选项的数目。

2.获得选中项的索引值。

3.获得当前选中项的值

4.设定选择值

5.设定选择项

...

1 //得到select项的个数

2 jQuery.fn.size = function(){

3 return jQuery(this).get(0).options.length;

4 }

5

6 //获得选中项的索引

7 jQuery.fn.getSelectedIndex = function(){

8 return jQuery(this).get(0).selectedIndex;

9 }

10

11 //获得当前选中项的文本

12 jQuery.fn.getSelectedText = function(){

13 if(this.size() == 0) return "下拉框中无选项";

14 else{

15 var index = this.getSelectedIndex();

16 return jQuery(this).get(0).options[index].text;

17 }

18 }

19

20 //获得当前选中项的值

21 jQuery.fn.getSelectedValue = function(){

22 if(this.size() == 0)

23 return "下拉框中无选中值";

24

25 else

26 return jQuery(this).val();

27 }

28

29 //设置select中值为value的项为选中

30 jQuery.fn.setSelectedValue = function(value){

31 jQuery(this).get(0).value = value;

32 }

33

34 //设置select中文本为text的第一项被选中

35 jQuery.fn.setSelectedText = function(text)

36 {

37 var isExist = false;

38 var count = this.size();

39 for(var i=0;i<count;i++)

40 {

41 if(jQuery(this).get(0).options[i].text == text)

42 {

43 jQuery(this).get(0).options[i].selected = true;

44 isExist = true;

45 break;

46 }

47 }

48 if(!isExist)

49 {

50 alert("下拉框中不存在该项");

51 }

52 }

53 //设置选中指定索引项

54 jQuery.fn.setSelectedIndex = function(index)

55 {

56 var count = this.size();

57 if(index >= count || index < 0)

58 {

59 alert("选中项索引超出范围");

60 }

61 else

62 {

63 jQuery(this).get(0).selectedIndex = index;

64 }

65 }

66 //判断select项中是否存在值为value的项

67 jQuery.fn.isExistItem = function(value)

68 {

69 var isExist = false;

70 var count = this.size();

71 for(var i=0;i<count;i++)

72 {

73 if(jQuery(this).get(0).options[i].value == value)

74 {

75 isExist = true;

76 break;

77 }

78 }

79 return isExist;

80 }

81 //向select中添加一项,显示内容为text,值为value,如果该项值已存在,则提示

82 jQuery.fn.addOption = function(text,value)

83 {

84 if(this.isExistItem(value))

85 {

86 alert("待添加项的值已存在");

87 }

88 else

89 {

90 jQuery(this).get(0).options.add(new Option(text,value));

91 }

92 }

93 //删除select中值为value的项,如果该项不存在,则提示

94 jQuery.fn.removeItem = function(value)

95 {

96 if(this.isExistItem(value))

97 {

98 var count = this.size();

99 for(var i=0;i<count;i++)

100 {

101 if(jQuery(this).get(0).options[i].value == value)

102 {

103 jQuery(this).get(0).remove(i);

104 break;

105 }

106 }

107 }

108 else

109 {

110 alert("待删除的项不存在!");

111 }

112 }

113 //删除select中指定索引的项

114 jQuery.fn.removeIndex = function(index)

115 {

116 var count = this.size();

117 if(index >= count || index < 0)

118 {

119 alert("待删除项索引超出范围");

120 }

121 else

122 {

123 jQuery(this).get(0).remove(index);

124 }

125 }

126 //删除select中选定的项

127 jQuery.fn.removeSelected = function()

128 {

129 var index = this.getSelectedIndex();

130 this.removeIndex(index);

131 }

132 //清除select中的所有项

133 jQuery.fn.clearAll = function()

134 {

135 jQuery(this).get(0).options.length = 0;

136 }