刚在论坛上看了一个帖子 其中这段JS是在令我费解 注解下每句 ps(用汉字)
[code="java"]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;
} [/code]

详细注解这段JS
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- playfish05 2009-09-01 08:33关注
var _inner = {
//定义可选择项的数组
"nation" : ['汉族','蒙古族','彝族','侗族','哈萨克族',
'畲族','纳西族','仫佬族','仡佬族','怒族','保安族',
'鄂伦春族','回族','壮族','瑶族','傣族','高山族',
'景颇族','羌族','锡伯族','乌孜别克族','裕固族','赫哲族',
'藏族','布依族','白族','黎族','拉祜族','柯尔克孜族','布朗族',
'阿昌族','俄罗斯族','京族','门巴族','维吾尔族','朝鲜族',
'土家族','傈僳族','水族','土族','撒拉族','普米族','鄂温克族',
'塔塔尔族','珞巴族','苗族','满族','哈尼族','佤族','东乡族',
'达斡尔族','毛南族','塔吉克族','德昂族','独龙族','基诺族'],
"shengxiao" : ['鼠','牛','虎','兔','蛇','蛇','马','羊','猴','鸡','狗','猪'],
"degree" : ['小学','初中','高中','中专','大专','本科','硕士','博士']
}
//生成选择项的数组,即下拉框的option,这个数组可以是自己传递进来的参数,定义在c['array']里面的。如果没有定义array,那么就用上面自带的3个数组,那传递进来的那个c那个参数,就需要指定type,比如说nation,或者shengxiao
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);
}
//以下写法都相同,&&运算符,比如 1 && 2,如果1为false,那么整条语句直接返回false,2不会被执行,如果1为true,那么就会继续执行2.这条语句相当于if(c['id']){
_select.id = c["id"];
},即先判断一下c['id']是否存在。c["id"] && (_select.id = c["id"]);
c["name"] && (_select.name = c["name"]);
c["onchange"] && (_select.onchange = c["onchange"]);
return _select;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报