无法在javascript中循环遍历对象数组
Unable to loop through array of objects in javascript
我想遍历一个对象数组,但找不到每个对象的键。我做错了什么?
Javascript/jQuery代码:
var position = [];
$('.box').each(function(){
var id = $(this).attr('id');
var offset = $(this).offset();
var offsetX = offset.left;
var offsetY = offset.top;
position.push('{"id":'+id+',"offX":'+offsetX+',"offY":'+offsetY+'}');
});
for (var i = 0; i < position.length; i++) {
console.log(position[i].id); // i get the error of undefined
}
Html标记:
<div id="parent">
<div class="box" id="1">1</div>
<div class="box" id="2">2</div>
<div class="box" id="3">3</div>
<div class="box" id="4">4</div>
<div class="box" id="5">5</div>
<div class="box" id="6">6</div>
<div class="box" id="7">7</div>
<div class="box" id="8">8</div>
<div class="box" id="9">9</div>
<div class="box" id="10">10</div>
</div>
这里的jsfiddle
position.push('{"id":'+id+',"offX":'+offsetX+',"offY":'+offsetY+'}');
好吧,这不是一个对象,而是一个JSON字符串(如果幸运的话,它是有效的)。使用适当的对象文字:
position.push({"id":id, "offX":offsetX, "offY":offsetY});
然后您将能够访问其CCD_ 1属性。
您正在向数组中添加一个字符串。您要添加一个对象。
position.push({id: id,offX: offsetX,offY: offsetY});
我看过你的代码,问题似乎出在你的语句上:
$('.box').each(function(){});
即使语法正确,也可能存在其他问题导致这种情况发生。以下是一些可能有问题的建议:
- 缺少您正在引用的JQuery文件,或者您根本没有引用文件
请确保您在本网站上找到了用于家庭测试/ServerTesting的JQuery文件:点击此处
- 请确保您在脚本中引用了JQuery文件:
script src="jquery-1.11.2.min.js"
- 如果您没有运行html 5,请确保添加:
script type="javascript/text"
相关文章:
- 无法在javascript中循环遍历对象数组
- 在循环遍历对象 HTMLDivElement 时,应用 ChileNode 样式 zindex 在 firefox 和
- 使用函数for循环遍历对象以更改值,然后返回结果
- 遍历对象会导致无限循环
- Javascript 尝试遍历对象数组以显示其属性
- 遍历对象项
- 遍历对象列表
- 如何遍历对象数组并将值放入过滤器中
- JavaScript-在对象的实例中遍历对象'类'
- JS 字段验证 - 循环遍历对象,每个字段有三个数据注意事项
- Javascript Foreach 循环遍历对象数组
- 如何遍历对象数组并重写属性值
- Javascript 循环遍历对象中的对象
- jQuery 使用 % 遍历对象
- 遍历对象的子项,直到找到具有属性 X 的定位点
- For-in 循环遍历对象在第一个键后停止
- Javascript:遍历对象数组以查找键值对并将它们呈现在表中 td
- Ember js 遍历对象的 json 数组以创建元素
- 在 Ember.js 中,如何使用 super() 遍历对象继承树
- 使用正则表达式键匹配 Javascript 循环遍历对象获取值