1. <form id="f">
  2. <select size="1" name="s">
  3. <option value="www.dwww.cn">设计家园</option>
  4. <option value="baidu.com">百度</option>
  5. </select>
  6. </form>
  7. ---------------------------------------------------------------------------
  8. <script type="text/javascript">
  9. <!--
  10. var f = document.getElementById("f");
  11. //获得select列表项数目
  12. document.write(f.s.options.length);
  13. document.write(f.s.length);
  14. //当前选中项的下标(从0 开始)(有两种方法)
  15. //如果选择了多项,则返回第一个选中项的下标
  16. document.write(f.s.options.selectedIndex);
  17. document.write(f.s.selectedIndex);
  18. //检测某一项是否被选中
  19. document.write(f.s.options[0].selected);
  20. //获得某一项的值和文字
  21. document.write(f.s.options[0].value);
  22. document.write(f.s.options[1].text);
  23. //删除某一项
  24. f.s.options[1] = null;
  25. //追加一项
  26. f.s.options[f.s.options.length] = new Option("追加的text", "追加的value");
  27. //更改一项
  28. f.s.options[1] = new Option("更改的text", "更改的value");
  29. //也可以直接设置该项的 text 和 value
  30. //-->
  31. </script>
  32. //全选列表中的项
  33. function SelectAllOption(list)
  34. {
  35. for (var i=0; i<list.options.length; i++)
  36. {
  37. list.options[i].selected = true;
  38. }
  39. }
  40. //反选列表中的项
  41. function DeSelectOptions(list)
  42. {
  43. for (var i=0; i<list.options.length; i++)
  44. {
  45. list.options[i].selected = !list.options[i].selected;
  46. }
  47. }
  48. //返回列表中选择项数目
  49. function GetSelectedOptionsCnt(list)
  50. {
  51. var cnt = 0;
  52. var i = 0;
  53. for (i=0; i<list.options.length; i++)
  54. {
  55. if (list.options[i].selected)
  56. {
  57. cnt++;
  58. }
  59. }
  60. return cnt;
  61. }
  62. //清空列表
  63. function ClearList(list)
  64. {
  65. while (list.options.length > 0)
  66. {
  67. list.options[0] = null;
  68. }
  69. }
  70. //删除列表选中项
  71. //返回删除项的数量
  72. function DelSelectedOptions(list)
  73. {
  74. var i = 0;
  75. var deletedCnt = 0;
  76. while (i < list.options.length)
  77. {
  78. if (list.options[i].selected)
  79. {
  80. list.options[i] = null;
  81. deletedCnt++;
  82. }
  83. else
  84. {
  85. i++;
  86. }
  87. }
  88. return deletedCnt;
  89. }
  90. //此函数查找相应的项是否存在
  91. //repeatCheck是否进行重复性检查
  92. //若为"v",按值进行重复值检查
  93. //若为"t",按文字进行重复值检查
  94. //若为"vt",按值和文字进行重复值检查
  95. //其它值,不进行重复性检查,返回false
  96. function OptionExists(list, optText, optValue, repeatCheck)
  97. {
  98. var i = 0;
  99. var find = false;
  100. if (repeatCheck == "v")
  101. {
  102. //按值进行重复值检查
  103. for (i=0; i<list.options.length; i++)
  104. {
  105. if (list.options[i].value == optValue)
  106. {
  107. find = true;
  108. break;
  109. }
  110. }
  111. }
  112. else if (repeatCheck == "t")
  113. {
  114. //按文字进行重复检查
  115. for (i=0; i<list.options.length; i++)
  116. {
  117. if (list.options[i].text == optText)
  118. {
  119. find = true;
  120. break;
  121. }
  122. }
  123. }
  124. else if (repeatCheck == "vt")
  125. {
  126. //按值和文字进行重复检查
  127. for (i=0; i<list.options.length; i++)
  128. {
  129. if ((list.options[i].value == optValue) && (list.options[i].text == optText))
  130. {
  131. find = true;
  132. break;
  133. }
  134. }
  135. }
  136. return find;
  137. }
  138. //向列表中追加一个项
  139. //list 是要追加的列表
  140. //optText 和 optValue 分别表示项的文字和值
  141. //repeatCheck 是否进行重复性检查,参见 OptionExists
  142. //添加成功返回 true,失败返回 false
  143. function AppendOption(list, optText, optValue, repeatCheck)
  144. {
  145. if (!OptionExists(list, optText, optValue, repeatCheck))
  146. {
  147. list.options[list.options.length] = new Option(optText, optValue);
  148. return true;
  149. }
  150. else
  151. {
  152. return false;
  153. }
  154. }
  155. //插入项
  156. //index 插入位置,当插入位置 >= 列表现有项数量时,其作用相当于不进行重复检查的追加项
  157. //optText 和 optValue 分别表示项的文字和值
  158. function InsertOption(list, index, optText, optValue)
  159. {
  160. var i = 0;
  161. for (i=list.options.length; i>index; i--)
  162. {
  163. list.options[i] = new Option(list.options[i-1].text, list.options[i-1].value);
  164. }
  165. list.options[index] = new Option(optText, optValue);
  166. }
  167. //将一个列表中的项导到另一个列表中
  168. //repeatCheck是否进行重复性检查,参见OptionExists
  169. //deleteSource项导到目标后,是否删除源列表中的项
  170. //返回影响的项数量
  171. function ListToList(sList, dList, repeatCheck, deleteSource)
  172. {
  173. //所影响的行数
  174. var lines = 0;
  175. var i = 0;
  176. while (i<sList.options.length)
  177. {
  178. if (sList.options[i].selected && AppendOption(dList, sList.options[i].text, sList.options[i].value, repeatCheck))
  179. {
  180. //添加成功
  181. lines++;
  182. if (deleteSource)
  183. {
  184. //删除源列表中的项
  185. sList.options[i] = null;
  186. }
  187. else
  188. {
  189. i++;
  190. }
  191. }
  192. else
  193. {
  194. i++;
  195. }
  196. }
  197. return lines;
  198. }
  199. //列表中选中项上移
  200. function MoveSelectedOptionsUp(list)
  201. {
  202. var i = 0;
  203. var value = "";
  204. var text = "";
  205. for (i=0; i<(list.options.length-1); i++)
  206. {
  207. if (!list.options[i].selected && list.options[i+1].selected)
  208. {
  209. value = list.options[i].value;
  210. text = list.options[i].text;
  211. list.options[i] = new Option(list.options[i+1].text, list.options[i+1].value);
  212. list.options[i].selected = true;
  213. list.options[i+1] = new Option(text, value);
  214. }
  215. }
  216. }
  217. //列表中选中项下移
  218. function MoveSelectedOptionsDown(list)
  219. {
  220. var i = 0;
  221. var value = "";
  222. var text = "";
  223. for (i=list.options.length-1; i>0; i--)
  224. {
  225. if (!list.options[i].selected && list.options[i-1].selected)
  226. {
  227. value = list.options[i].value;
  228. text = list.options[i].text;
  229. list.options[i] = new Option(list.options[i-1].text, list.options[i-1].value);
  230. list.options[i].selected = true;
  231. list.options[i-1] = new Option(text, value);
  232. }
  233. }
  234. }

javascript对下拉列表框(select)的操作的更多相关文章

  1. 下拉列表框select

      下拉列表框select CreateTime--2017年5月15日15:39:24 Author:Marydon 三.下拉列表框 (一)语法 <select></select& ...

  2. jQuery select的操作代码

    jQuery對select的操作的实际应用代码. //改變時的事件  复制代码代码如下: $("#testSelect").change(function(){ //事件發生  j ...

  3. JavaScript中常见的数组操作函数及用法

    JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...

  4. JavaScript中常见的字符串操作函数及用法

    JavaScript中常见的字符串操作函数及用法 最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信 ...

  5. Javascript: Let user select an HTML element like Firebug?综述

    Javascript: Let user select an HTML element like Firebug? Javascript: Let user select an HTML elemen ...

  6. javascript中对字符串的操作总结

    原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...

  7. JavaScript中对数组的操作

    原文:JavaScript中对数组的操作 一:数组的使用 1.定义:JavaScript中对数组的定义有两种形式.如: .var arr = [12,3,5,8]; .var arr = new Ar ...

  8. 【jq】JQuery对select的操作

    下拉框 <select id="selectID" name="selectName"> <option vlaue="1" ...

  9. day36—javascript对表格table的操作应用(一)

    转行学开发,代码100天——2018-04-21 今天记录一下,JavaScript对表格table的操作应用,包括表格元素的获取,创建,删除等. 一个普通的完整表格包括以下几个部分:table-&g ...

随机推荐

  1. Oracle一些查询的习题,初学者一定要练习,蛮不错的

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...

  2. Java基础大家必看啊

    写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来.   学习 ...

  3. 新手IOS tweak越狱app开发记录

    需要改变原先程序功能流程的话,是要用到Logos Tweak 开发.另外,.在苹果商城下载到的app,不能直接拿来分析.需要先做一定的前期准备.网上有很多相关的写第一个越狱插件的文章,这里就不在赘言了 ...

  4. Spring入门示例

    开发环境 Spring 4.3.0+Myeclipse2015+JDK1.8 准备阶段: 1.新建一Spring01项目,然后新建一个lib文件.将下面的添加到lib文件中 2.将lib文件所有的包导 ...

  5. scott权限

    有时scott数据被破坏了  可以回复 以下为 安装路径 dos下   @G:\app\Administrator\product\11.2.0\dbhome_1\RDBMS\ADMIN\scott. ...

  6. gulp入门学习教程(入门学习记录)

    前言 最近在通过教学视频学习angularjs,其中有gulp的教学部分,对其的介绍为可以对文件进行合并,压缩,格式化,监听,测试,检查等操作时,看到前三种功能我的心理思想是,网上有很多在线压缩,在线 ...

  7. 将本地web项目发布到ubuntu上并运行 第一个本地的.net core2.0项目

    前置条件 ubuntu已安装dotnet 发布版本dotnet与发布机一致 这里用的是vm 所以直接把本地web项目拷贝到vm中运行的ubuntu系统中 web站点需要将 webapplication ...

  8. python --闭包学习

    闭包概念: Closure:内部函数中对enclosing作用域的变量进行引用 enclosing作用域:函数内部与内嵌函之间 范例1: #coding:utf-8 def set_passline( ...

  9. Android 混淆代码总结

    为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这 ...

  10. Hibernate关联关系(二) Cascade级联

    1.cascade定义的是关系两端对象到对象的级联关系:而inverse定义的是关系和对象的级联关系. all : 所有情况下均进行关联操作.  none:所有情况下均不进行关联操作.这是默认值.  ...