我正在创建自己的对象:
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");
}
答案 0 :(得分:74)
如果要使用变量属性名称,请使用下标语法:
var fieldname = 'test';
//These two lines are equivalent as long as fieldname is 'test':
gridObject[fieldname] = fieldvalue;
gridObject.test = fieldvalue