通过点表示法访问对象属性
Access object property via dot notation
我正在迭代从服务器返回的集合;它看起来像这样:
roster: Array
0: Object
avatar: null
contactName: "me@test.com"
contactType: "grouping"
displayName: "Joe Shmoe"
我正在创建一个表,并试图将"displayName"添加到它,但通过点表示法访问不工作。我下面的代码有什么问题?
function createAddressBook()
{
var tbl = document.getElementById( 'addressBook_tbl' );
var tbdy = document.createElement( 'tbody' );
// cells creation
for( var j = 0; j <= roster.length; j++ )
{
// table row creation
var row = document.createElement( "tr" );
for( var i = 0; i < 2; i++ )
{
// create element <td> and text node
//Make text node the contents of <td> element
// put <td> at end of the table row
var cell = document.createElement( "td" );
var cellText = document.createTextNode( roster[ j ].displayName );
cell.appendChild( cellText );
row.appendChild( cell );
}
//row added to end of table body
tbdy.appendChild( row );
}
// append the <tbody> inside the <table>
tbl.appendChild( tbdy );
}
当您定义i
时,您正在使用j
。
// ----------------v-------should be `i`
"user: " + roster[ j ].displayName
仅供参考,您可以使用.insertCell(-1)
附加一个新单元格。
row.insertCell(-1)
.appendChild(document.createTextNode( "user: " + roster[ j ].displayName ));
EDIT:当你更新的代码工作时,它确实有一个错误。
您正在尝试访问roster
在其上一个索引之外的索引。因为Array的索引是从0开始的,所以最后一个索引是roster.length - 1
,所以应该使用<
而不是<=
。
// ---------------v
for( var j = 0; j < roster.length; j++ )
相关文章:
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- 使用js或extjs访问对象的java列表
- Javascript-访问对象
- 访问对象的最简单方法'的单独财产
- 分析云代码访问对象
- 如何从字符串变量访问对象属性
- 访问对象中的数组
- 如何访问对象's成员通过另一种方法填充的方法
- 访问对象内的数组
- 是否可以在定义对象时访问对象值
- Javascript 无法访问对象的属性
- $.each 中的“this”,当需要使用“this”访问对象的函数时
- 函数中的 angularJS 访问对象属性不起作用
- 通过存储在变量中的名称访问对象
- 访问对象内部的数组
- 如何从类函数内部访问对象属性
- 访问对象和指定变量
- Javascript - 使用 for 时遇到问题.以循环访问对象
- 为什么可以在内部函数成员中访问对象引用,而不能在内部属性成员中访问
- 当对象的键中有冒号时,如何访问对象属性