2011-07-03 23:11 【转】js实现下拉列表: 动态的实现选中项

在很多地方都会用到 一些常用的下拉框   如民族 、生肖、学历、血型 等等     所以我们就有必要用javaScript对这些进行一个简单的封装 如果每次都在html 中编写这样的代码:

<select>
      <option></option>
      <option></option>
      <option></option>
</select>

这样的代码不好动态的实现选中项 对于这样的考虑      
我们对这些进行一个简单的 javaScript 代码编写
createSelect.js 中的代码:


var arrayNation=new Array(  
    '汉族','蒙古族','彝族','侗族','哈萨克族',    
    '畲族','纳西族','仫佬族','仡佬族','怒族','保安族',       
    '鄂伦春族','回族','壮族','瑶族','傣族','高山族',       
    '景颇族','羌族','锡伯族','乌孜别克族','裕固族','赫哲族',      
    '藏族','布依族','白族','黎族','拉祜族','柯尔克孜族','布朗族',      
    '阿昌族','俄罗斯族','京族','门巴族','维吾尔族','朝鲜族',    
    '土家族','傈僳族','水族','土族','撒拉族','普米族','鄂温克族',    
    '塔塔尔族','珞巴族','苗族','满族','哈尼族','佤族','东乡族',     
    '达斡尔族','毛南族','塔吉克族','德昂族','独龙族','基诺族');   

var arrayShengXiao=new Array(  
    '鼠','牛','虎','兔','蛇',  
    '蛇','马','羊','猴','鸡','狗','猪');   

var arrayDegree=new Array(  
    '小学','初中','高中','中专',  
    '大专','本科','硕士','博士');  

/** *创建民族选择框 */   
function createNationSelect(name,str) {   
    document.write("<select id='selectNation'></select>");   
    var select=document.getElementById("selectNation");   
    for(var i=0;i<arrayNation.length;i=i+1) {    
        select.name=name;    
        var opt=document.createElement("option");    
        opt.value=arrayNation;    
        opt.innerText=arrayNation;    
        if(arrayNation==str)   {    
            opt.selected='true';    
        }     
        select.appendChild(opt);  
   }  
}   

/** *创建生肖选择框 */   
function createShengXiaoSelect(name,str) {   
    document.write("<select id='selectShengXiao'></select>");  
    var select=document.getElementById("selectShengXiao");   
    for(var i=0;i<arrayShengXiao.length;i=i+1) {   
        select.name=name;     
        var opt=document.createElement("option");    
        opt.value=arrayShengXiao;   
        opt.innerText=arrayShengXiao;    
        if(arrayShengXiao==str)   {    
            opt.selected='true';     
        }     
        select.appendChild(opt);   
   }   
}   
/** *创建学历选择框 */
function createDegreeSelect(name,str) {  
    document.write("<select id='selectDegree'></select>");   
    var select=document.getElementById("selectDegree");  
    for(var i=0;i<arrayDegree.length;i=i+1) {     
        select.name=name;    
        var opt=document.createElement("option");     
        opt.value=arrayDegree;     
        opt.innerText=arrayDegree;   
        if(arrayDegree==str)   {   
            opt.selected='true';    
        }     
        select.appendChild(opt);   
    }   
}  

然后在html文件我们就可以这样使用了

<SCRIPT src="createSelect.js" language="javascript"></SCRIPT>   
<script type="text/javascript">        
     createNationSelect("userNation");   
</script>
这样就很容易就创建一个 name="userNation" 的下拉框  
而且还很容易就实现了 指定默认选中项

<script type="text/javascript">           
createNationSelect("userNation","苗族"); </script>
如果要显示一个用户有民族的话

<script type="text/javascript">        
     createNationSelect("userNation","${user.userNation}");  
</script>

优化及应用:

<div id="nation">民族:</div>  
<div id="shengxiao">生肖:</div>  
<div id="degree">学位:</div>  
<div id="self">自定义:</div>  
<script>    
function createSelect(c){  
    var _inner = {  
        "nation" : ['汉族','蒙古族','彝族','侗族','哈萨克族',   
            '畲族','纳西族','仫佬族','仡佬族','怒族','保安族',   
            '鄂伦春族','回族','壮族','瑶族','傣族','高山族',   
            '景颇族','羌族','锡伯族','乌孜别克族','裕固族','赫哲族',   
            '藏族','布依族','白族','黎族','拉祜族','柯尔克孜族','布朗族',   
            '阿昌族','俄罗斯族','京族','门巴族','维吾尔族','朝鲜族',   
            '土家族','傈僳族','水族','土族','撒拉族','普米族','鄂温克族',   
            '塔塔尔族','珞巴族','苗族','满族','哈尼族','佤族','东乡族',   
            '达斡尔族','毛南族','塔吉克族','德昂族','独龙族','基诺族'],  
        "shengxiao" : ['鼠','牛','虎','兔','蛇','蛇','马','羊','猴','鸡','狗','猪'],  
        "degree" : ['小学','初中','高中','中专','大专','本科','硕士','博士']  
    }  
    var _array = c["array"] || _inner[c["type"]];  
    var _select = document.createElement("select");  
    for(var i=0; i < _array.length; i++){  
        _select.options[i] = new Option(_array[i], _array[i]);  
        _array[i] == c["selected"] && (_select.options[i].selected = true);  
    }  
    c["id"] && (_select.id = c["id"]);  
    c["name"] && (_select.name = c["name"]);  
    c["onchange"] && (_select.onchange = c["onchange"]);  
    return _select;  
}  

//应用  
function $(id){return document.getElementById(id);}  
$("nation").appendChild(createSelect({type : "nation", selected : "蒙古族",onchange : function(){alert(this.value)}}));  
$("shengxiao").appendChild(createSelect({type : "shengxiao", selected : "虎", id : "shengxiao"}));  
$("degree").appendChild(createSelect({type : "degree", selected : "本科", name : "degree"}));  
$("self").appendChild(createSelect({array : ["你","我","他"], selected : "他"}));  
</script>

<div id="nation">民族:</div>
<div id="shengxiao">生肖:</div>
<div id="degree">学位:</div>
<div id="self">自定义:</div>
<script>
function createSelect(c){
var _inner = {
   "nation" : ['汉族','蒙古族','彝族','侗族','哈萨克族',
    '畲族','纳西族','仫佬族','仡佬族','怒族','保安族',
    '鄂伦春族','回族','壮族','瑶族','傣族','高山族',
    '景颇族','羌族','锡伯族','乌孜别克族','裕固族','赫哲族',
    '藏族','布依族','白族','黎族','拉祜族','柯尔克孜族','布朗族',
    '阿昌族','俄罗斯族','京族','门巴族','维吾尔族','朝鲜族',
    '土家族','傈僳族','水族','土族','撒拉族','普米族','鄂温克族',
    '塔塔尔族','珞巴族','苗族','满族','哈尼族','佤族','东乡族',
    '达斡尔族','毛南族','塔吉克族','德昂族','独龙族','基诺族'],
   "shengxiao" : ['鼠','牛','虎','兔','蛇','蛇','马','羊','猴','鸡','狗','猪'],
   "degree" : ['小学','初中','高中','中专','大专','本科','硕士','博士']
}
var _array = c["array"] || _inner[c["type"]];
var _select = document.createElement("select");
for(var i=0; i < _array.length; i++){
   _select.options[i] = new Option(_array[i], _array[i]);
   _array[i] == c["selected"] && (_select.options[i].selected = true);
}
c["id"] && (_select.id = c["id"]);
c["name"] && (_select.name = c["name"]);
c["onchange"] && (_select.onchange = c["onchange"]);
return _select;
}

//应用
function $(id){return document.getElementById(id);}
$("nation").appendChild(createSelect({type : "nation", selected : "蒙古族",onchange : function(){alert(this.value)}}));
$("shengxiao").appendChild(createSelect({type : "shengxiao", selected : "虎", id : "shengxiao"}));
$("degree").appendChild(createSelect({type : "degree", selected : "本科", name : "degree"}));
$("self").appendChild(createSelect({array : ["你","我","他"], selected : "他"}));
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值