开发者社区> 问答> 正文

关于jquery操作数据,写入json类型的变量 报错

<ul>
    <li class="_photo-item" data-type="a" data-path="0">1</li>
    <li class="_photo-item" data-type="b" data-path="1">1</li>
    <li class="_photo-item" data-type="c" data-path="2">1</li>
    <li class="_photo-item" data-type="d" data-path="3">1</li>
    <li class="_photo-item" data-type="e" data-path="4">1</li>
    <li class="_photo-item" data-type="f" data-path="5">1</li>
    <li class="_photo-item" data-type="g" data-path="6">1</li>
    <li class="_photo-item" data-type="h" data-path="7">1</li>
    <li class="_photo-item" data-type="i" data-path="8">1</li>
    <li class="_photo-item" data-type="g" data-path="9">1</li>
</ul>
<script type="text/javascript">
    $(function () {
        var suns = $('._photo-item').length;
        var employees =[
                {"paths":" ","types":" "},
            ];
        console.log(employees);
        for (var i = 0; i < suns; i++) {
            employees[i].paths = $('._photo-item').eq(i).data('path');
            employees[i].types = $('._photo-item').eq(i).data('type');
            console.log("是否循环:"+i);
        };  
        console.log(employees); 
    })
</script>

screenshot

为什么,i只循环了一次,只写入了第一次的数据。
而且报错,paths为空

展开
收起
爵霸 2016-03-05 11:29:13 2360 0
1 条回答
写回答
取消 提交回答
  • 因为你的employees[1] 是undefined,报错了,导致停止运行。所以才只循环1次就终止了。

    <script type="text/javascript">
        $(function () {
            var suns = $('._photo-item'),employees =[];
            for (var i = 0, _arr = {}; i < suns.length; i++) {
                _arr.paths = suns.eq(i).attr('data-path');
                _arr.types = suns.eq(i).attr('data-type');
                employees.push(_arr);
            };
            console.log(employees);
        });
    </script>
    2019-07-17 18:53:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Javascript中的对象 立即下载
Delivering Javascript to World 立即下载
JavaScript函数 立即下载

相关实验场景

更多