【发布时间】:2011-06-09 08:12:13
【问题描述】:
我正在创建自己的对象:
gridObject = new Object();
然后我使用 jquery 来拉取列表项标签的内容,这些标签本身是用
填充的具有特定类名的标签:
<li row="1"><p class="department" rowitem="department">Photography</p>...</li>
我正在使用以下代码拉他们:
//make object from results
gridObject = new Object();
//get all the rows
var rowlist = $('li[row]');
for(var r=0; r<rowlist.length; r++) {
//make gridObject row element here
//get the row content
var thisrow = $(rowlist[r]).html();
//get all the p tags
var rowitems = $(thisrow + 'p.[rowitem]');
//get field name
for(var ri=0; ri<rowitems.length; ri++) {
if (r < 2) { //this is temporary just for testing
var fieldname = $(rowitems[ri]).attr('rowitem');
var fieldvalue = $(rowitems[ri]).html();
}
}
我被挂断了,将它传递给我的对象。两个问题。对象属性可以用变量名来制作吗,像这样
griObject.fieldname = fieldvalue;
对象是否可以具有父/子关系,例如:
gridObject.r.fieldname = fieldvalue;
在这种情况下,r 和 fieldname 都是变量。还是我应该只使用关联数组来实现类似的东西?
这是对我在下面发布的后续问题的回答:“javascript 中是否有 print_r 等效项” - 您可以使用迭代器,输入更多内容但可以解决问题:
//loop through search data
var it = Iterator(filteritems);
for(var pair in it) {
console.log("key:" + pair[0] + ", value:" + pair[1] + "\n");
}
【问题讨论】:
-
在 JavaScript 中,对象是一个关联数组。您可以为
obj.prop或obj['prop']之类的对象编制索引 - 它们是相同的(除了下标方式在属性名称上更灵活)。 -
@Skilldrick 我更喜欢术语“映射”,因为在“关联数组”中使用“数组”让一些人想到 PHP 样式的“数组”和排序,这并不准确,但常见的误解...
-
我投票决定重新提出这个问题,因为它使用变量处理引用对象属性;不是创建此类对象属性。
标签: javascript jquery object variables properties