json 遍历的削笔机

刚刚遇到这个问题。赶紧记下来

由于我通常(其实很少写)写json的时候都是这样写

var json={a:’whq’,b:’whl’,c:’whj’,d:’wq’}
alert(json.a);
弹出whq

但是今天遇到的用这个行不通了

案例如下:
这里写图片描述

我把左边图片的名字用json存起来

var H_proPicjson={blue:'pro3.jpg',gray:'pro.jpg',blank:'pro1.jpg',red:'pro2.jpg'};

把选择颜色的按钮的类名都命名为相应的颜色

<dl id="change_color" class="change_color clearfix">
        <dt>选择颜色</dt>
        <dd class="gray"><img src="img/pro_color_gray.png"/></dd>
        <dd class="blank"><img src="img/pro_color_blank.png"/></dd>
        <dd class="blue"><img src="img/pro_color_blue.png"/></dd>
        <dd class="red"><img src="img/pro_color_red.png"/></dd>
</dl>

当我点击按钮的时候,让左边图片的scr值等于相应颜色的json值

想法是正确的,但是做法就始终不能实现
看我错误的代码如下:

var H_proPicjson={blue:'pro3.jpg',gray:'pro.jpg',blank:'pro1.jpg',red:'pro2.jpg'};
    var H_proPic=document.getElementById('H_proPic');
    var change_color=document.getElementById('change_color');
    var aColorBtn=change_color.getElementsByTagName('dd');
    for(var i=0;i<aColorBtn.length;i++){        
        aColorBtn[i].onclick=function(){
            var Colors=this.className;
            H_proPic.src='img/'+H_proPicjson.Colors;
        };
    }

哦!!!问题来了,
效果不出来,而且弹出的Colors为undefined;
这就郁闷了;

在我请教高人(邓泽满)之后终于得解

原来我的json值是字符串,而this.className是一个值,所以就出bug了;

最后代码为:

for(var i=0;i<aColorBtn.length;i++){        
        aColorBtn[i].onclick=function(){
            var Colors=this.className;
            H_proPic.src='img/'+H_proPicjson[Colors];
        };
    }

切记H_proPicjson.Colors和H_proPicjson[Colors]之间的转换

完。。。。。。。。。。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值