var smthumb = '20';
var smilies_type = new Array();
smilies_type[1] = ['默认', 'default'];
smilies_type[2] = ['酷猴', 'monkey'];
smilies_type[3] = ['呆呆男', 'grapeman'];
var smilies_array = new Array();
smilies_array[1] = new Array();
smilies_array[1][1] = [
['1', ':)','smile.gif','20','20','20'],
['2', ':(','sad.gif','20','20','20'],
['3', ':D','biggrin.gif','20','20','20'],
['4', ':\'(','cry.gif','20','20','20'],
['5', ':@','huffy.gif','20','20','20'],
['6', ':o','shocked.gif','20','20','20'],
['7', ':P','tongue.gif','20','20','20'],
['8', ':$','shy.gif','20','20','20'],
['9', ';P','titter.gif','20','20','20'],
['10', ':L','sweat.gif','20','20','20'],
['11', ':Q','mad.gif','20','20','20'],
['12', ':lol','lol.gif','20','20','20'],
['13', ':loveliness:','loveliness.gif','20','20','20'],
['14', ':funk:','funk.gif','20','20','20'],
['15', ':curse:','curse.gif','20','20','20'],
['16', ':dizzy:','dizzy.gif','20','20','20'],
['17', ':shutup:','shutup.gif','20','20','20'],
['18', ':sleepy:','sleepy.gif','20','20','20'],
['19', ':hug:','hug.gif','20','20','20'],
['20', ':victory:','victory.gif','20','20','20'],
['21', ':time:','time.gif','20','20','20'],
['22', ':kiss:','kiss.gif','20','20','20'],
['23', ':handshake','handshake.gif','20','20','20'],
['24', ':call:','call.gif','20','20','20']
];
smilies_array[2] = new Array();
smilies_array[2][1] = [['25', '[m:01]','01.gif','20','20','48'],
['26', '[m:02]','02.gif','20','20','48'],
['27', '[m:03]','03.gif','20','20','48'],
['28', '[m:04]','04.gif','20','20','48'],
['29', '[m:05]','05.gif','20','20','48'],
['30', '[m:06]','06.gif','20','20','48'],
['31', '[m:07]','07.gif','20','20','48'],
['32', '[m:08]','08.gif','20','20','48'],
['33', '[m:09]','09.gif','20','20','48'],
['34', '[m:10]','10.gif','20','20','48'],
['35', '[m:11]','11.gif','20','20','48'],
['36', '[m:12]','12.gif','20','20','48'],
['37', '[m:13]','13.gif','20','20','48'],
['38', '[m:14]','14.gif','20','20','48'],
['39', '[m:15]','15.gif','20','20','48'],
['40', '[m:16]','16.gif','20','20','48']];
smilies_array[3] = new Array();
smilies_array[3][1] = [
['41', '[g:01]','01.gif','20','20','48'],
['42', '[g:02]','02.gif','20','20','48'],
['43', '[g:03]','03.gif','20','20','48'],
['44', '[g:04]','04.gif','20','20','48'],
['45', '[g:05]','05.gif','20','20','48'],
['46', '[g:06]','06.gif','20','20','48'],
['47', '[g:07]','07.gif','20','20','48'],
['48', '[g:08]','08.gif','20','20','48'],
['49', '[g:09]','09.gif','20','20','48'],
['50', '[g:10]','10.gif','20','20','48'],
['51', '[g:11]','11.gif','20','20','48'],
['52', '[g:12]','12.gif','20','20','48'],
['53', '[g:13]','13.gif','20','20','48'],
['54', '[g:14]','14.gif','20','20','48'],
['55', '[g:15]','15.gif','20','20','48'],
['56', '[g:16]','16.gif','20','20','48'],
['57', '[g:17]','17.gif','20','20','48']
];也上代码是手动赋数组,我现换成数组动态赋,也就是说从XML里读取信息,动态赋数组,但我赋值的方式有问题,请问错在哪里呢?下面是读XML赋值的代码
var xmlDoc = loadXmlDoc(xmlFile); var smthumb = '20';
var smilies_type = new Array();
smilies_type[1] = ['默认', 'default'];
smilies_type[2] = ['酷猴', 'monkey'];
smilies_type[3] = ['呆呆男', 'grapeman'];
var smilies_array = new Array();
smilies_array[1] = new Array();
smilies_array[2] = new Array();
smilies_array[3] = new Array();
smilies_array[1][1] = null;
smilies_array[2][1] = null;
smilies_array[3][1] = null;
var default_list="",monkey_list="",grapeman_list="";
//从XML读取表情
var borwser_type=1;
if(getOs()=="MSIE")
{
    //IE
borwser_type=1;
node = xmlDoc.documentElement.childNodes;
}
else
{
    //其他浏览器
borwser_type=2;
node = xmlDoc.getElementsByTagName(mode);
}
for(var i=0;i<node.length;i++)
{
var id,code,imgUrl,type;
if(borwser_type=1)
{
id = node[i].childNodes[0].text;               
code = node[i].childNodes[1].text;
imgUrl = node[i].childNodes[2].text;
type = node[i].childNodes[3].text;
}
else
{
var value = node[i].textContent.split('\t');
id = value[2];
code = value[4];
imgUrl = value[6];
type = value[8];
}
imgUrl = imgUrl.substring(imgUrl.lastIndexOf("/")+1);
if(type=="默认")
{
default_list += "['"+id+"', '"+code+"','"+imgUrl+"','20','20','20'],";
//smilies_array[1][i] = [id, code,imgUrl,'20','20','20'];
}
else if(type=="酷猴")
{
monkey_list += "['"+id+"', '"+code+"','"+imgUrl+"','20','20','20'],";
}
else if(type=="呆呆男")
{
grapeman_list += "['"+id+"', '"+code+"','"+imgUrl+"','20','20','20'],";
}
else{
//未定义的类别
}
}
if(default_list.length>1)
{
    default_list = default_list.substr(0,default_list.length-1);
smilies_array[1][1] = [default_list];
}
if(monkey_list.length>1)
{
    monkey_list = monkey_list.substr(0,monkey_list.length-1);
smilies_array[2][1] = [monkey_list];
}
if(grapeman_list.length>1)
{
grapeman_list = grapeman_list.substr(0,grapeman_list.length-1);
smilies_array[3][1] = [grapeman_list];
}

解决方案 »

  1.   


    smilies_array[1][1] = [
    ['1', ':)','smile.gif','20','20','20'],
    ['2', ':(','sad.gif','20','20','20']
    ];最主要是这上面段代码,要改成动态赋值应该怎样写呢?['2', ':(','sad.gif','20','20','20']
    这个是数据项,是动态读的这一行。
      

  2.   

     smilies_array[2][1] = [monkey_list];
    你是 monkey_list 是字符串!
    你需要把它转化成数组 smilies_array[2][1] = eval("(["+monkey_list+"])");给数组赋值:var arr=[]; // 声明数组
    arr.push([1,2,3]);  // 动态添加值 相当于 arr[0] = [1,2,3];
    arr.push([1,2,4]);  // 动态添加值 相当于 arr[1] = [1,2,4];
      

  3.   

     smilies_array[2][1] = eval("(["+monkey_list+"])");这句转换就解决了,多谢hch126163