Select 分类标签 optgroup 代码展示
2010-10-21 14:43
381 查看
注:
1、optgroup开始结束标签间不能有空格,否则optgroup.hasChildNodes() 始终为true.
2、增加了排序功能,先optgroup中options按value排序,然后按照otpgroup标签排序.
1、optgroup开始结束标签间不能有空格,否则optgroup.hasChildNodes() 始终为true.
2、增加了排序功能,先optgroup中options按value排序,然后按照otpgroup标签排序.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>select-optgroup</title> <head> <mce:script type="text/javascript"><!-- function CreateOptgroup(obj,obj1,value,text){ var addoption = document.createElement("option"); addoption.value = value; addoption.appendChild(document.createTextNode(text)); var addoptgroup = document.createElement("optgroup"); var optgroup=obj.options[obj.selectedIndex].parentNode; if(optgroup.label) { addoptgroup.label = optgroup.label; if(obj1.length==0) { addoptgroup.appendChild(addoption); obj1.appendChild(addoptgroup); } var i; var optgroup1; for(i=0;i<obj1.length;i++) { optgroup1=obj1.options[i].parentNode; if(optgroup1.label==addoptgroup.label) break; } if(optgroup1.label==addoptgroup.label) { optgroup1.appendChild(addoption); }else{ addoptgroup.appendChild(addoption); obj1.appendChild(addoptgroup); } SortOptgroup(obj1); } } function compareOptgroupLabel(a, b) { if (a.label < b.label) return -1; if (a.label > b.label) return 1; return 0; } function optgroupsToArray(selectObj) { var optgroupArray = new Array(); var optgroup; while(selectObj.length>0) { optgroup=selectObj.options[0].parentNode; if(optgroup.label) { optgroupArray[optgroupArray.length]=optgroup; OptOptionsSort(optgroup); selectObj.removeChild(optgroup); } } return optgroupArray; } function arrayToOptgroups(selectObj,optgroupArray) { for ( var i = 0; i < optgroupArray.length; i++) { var optgroup = optgroupArray[i]; selectObj.appendChild(optgroup); } } function SortOptgroup(selectObj) { var optgroupArray = optgroupsToArray(selectObj); optgroupArray.sort(compareOptgroupLabel); arrayToOptgroups(selectObj, optgroupArray); } function OptOptionsSort(optgroup) { var OptOptionsArray=OptOptionsToArray(optgroup); OptOptionsArray.sort(compareOptOptionsValueInt); arrayToOptOptions(optgroup,OptOptionsArray); } function OptOptionsToArray(optgroup) { var OptOptionsArray=new Array(); while(optgroup.hasChildNodes()) { OptOptionsArray[OptOptionsArray.length]=optgroup.firstChild; optgroup.removeChild(optgroup.firstChild); } return OptOptionsArray; } function compareOptOptionsValueInt(a, b) { if (parseInt(a.value) < parseInt(b.value)) return -1; if (parseInt(a.value) > parseInt(b.value)) return 1; return 0; } function arrayToOptOptions(optgroup,OptOptionsArray) { for ( var i = 0; i < OptOptionsArray.length; i++) { var optOptions = OptOptionsArray[i]; optgroup.appendChild(optOptions); } } function removeOptgroup(obj,i){ var optgroup=obj.options[i].parentNode; optgroup.removeChild(obj.options[i]); if(!optgroup.hasChildNodes()) obj.removeChild(optgroup); } function newMoveOptions(e1,e2) { try{ for(var i=0;i<e1.options.length;i++){ if(e1.options[i].selected){ var e = e1.options[i]; CreateOptgroup(e1,e2,e.value,e.text); removeOptgroup(e1,i); i=i-1 } } } catch(e){} return true; } // --></mce:script> </head> <body> <form method="post" name="table" action="" > <table> <tr><td> <select name="file_types" id="file_types" size=12 style="width:250px" ondblclick="newMoveOptions(this, document.forms[0].allow_types, true);" multiple> <optgroup label="Picture Files"><option value="0001">GIF</option><option value="0002">JPG</option></optgroup> <optgroup label="Text Files"><option value="0003">PDF</option><option value="0004">XML</option></optgroup> <optgroup label="Audio Files"><option value="0005">MP3</option><option value="0006">Special test file format</option></optgroup> </select> </td> <td> <select name="allow_types" id="allow_types" size="12" style="width:250px" ondblclick="newMoveOptions(this, document.forms[0].file_types, true);" multiple> </select> </td></tr> </table> </html> <mce:script type="text/javascript"><!-- SortOptgroup(document.forms[0].file_types); // --></mce:script>
相关文章推荐
- 用optgroup标签来分类select菜单
- 使用jQuery插件filtrify实现的超酷动态标签分类摩托车新款展示
- 使用jQuery插件filtrify实现的超酷动态标签分类摩托车新款展示
- JS创建select的optgroup和fieldset标签
- 如何通combobox中的select标签选择不同的值展示不同的echarts图标
- html 中 select optgroup 标签
- js select 标签选定项的值获取代码
- jquery 实现两Select 标签项互调示例代码
- <学习html>第二天笔记-标签分类、关系;开发工具;文档类型;标签语义化;HTML标签;问题“图像标签代码语法无误,但是图像显示不出来”
- jquery 实现两Select 标签项互调示例代码
- 强大的UITextView分类,自动计算年龄和星座的DatePicker,文字闪动渐变的标签, 一行代码画一个表格
- 用html的ul和li标签做图片展示功能示例代码
- Select标签下拉列表二级联动级联实例代码
- JQuery 操作select标签实现代码
- 在struts中html:select 标签的disabled属性中使用java代码
- 用javascript来实现select标签的美化的代码
- Struts2 select标签 设置Class属性生成的html代码中select没有class属性问题
- select标签以及默认选中当前分类问题
- HTML Select 标签选择后触发jQuery事件代码实例
- 使用jQuery插件filtrify实现的超酷动态标签分类摩托车新款展示