object = {
'0': array[2],
'3':array[33]
}
本来以为用id做key值的,结果发现 用 object['0'], object.0 都不能访问,所以在前面加了一个‘id’字符串就可以了
object = {
'id0': array[2],
'id3':array[33]
}
for( in )用于object
for( var i=0; i< arr.length; i+) 用于数组
基础不扎实,折腾了很久。
这是前篇文章php的javascript版本
$('#tab-item-course :radio').click(function(){
// console.log($('#tab-item-course :radio:checked'));
var cid = $('#tab-item-course :checked').eq(0).val();
var eid = $('#tab-item-course :checked').eq(1).val();
if( eid == 8 || eid == 2 ){
var sOptions = '<option value=-1>地理区域</option>';
} else {
cid = '-1';
var sOptions = '<option value=-1>专业方向划分</option>';
}
// console.log(cid,eid);
if( !oSubjectList[cid] || !oSubjectList[cid][eid] ){
// alert('目前没有该选项');
$('#selectedProfessionalId').attr('disabled', true);
return ;
}
var aList = oSubjectList[cid][eid];
var oCat = {};
for( var i=0; i<aList.length ; i++ ){
if ( ! oCat['id'+aList[i]['parentId']+'']) {
oCat['id'+aList[i]['parentId']+''] = [];
}
oCat['id'+ aList[i]['parentId']+''].push( aList[i] );
}
var aTopCat = oCat['id0'];
for ( var i=0; i<aTopCat.length ; i++ ) {
var pId = aTopCat[i]['professional_category_id'];
if ( eid == 6 || eid == 11) { //本科和硕士
sOptions += '<optgroup label="' + aTopCat[i]['professional_category_name'] + '">';
var aSubCate = oCat [ 'id'+pId];
for ( var j=0; j<aSubCate.length ; j++ ) {
sOptions += '<option value="' + aSubCate[j]['professional_category_id'] +'" >' + aSubCate[j]['professional_category_name'] + '</option>';
}
sOptions += '</optgroup>';
}else{ //没有二级菜单的
sOptions = sOptions + '<option value="' + aTopCat[i]['professional_category_id'] +'" >' + aTopCat[i]['professional_category_name'] + '</option>';
}
}
$('#selectedProfessionalId').html(sOptions).attr('disabled', false);
});
其实要主要 undefined的判断和数组遍历。
var oCat = {};
这个很重要,定义为对象,一开始定义为数组,老是出错。