私は自分のオブジェクトを作成しています:
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();
}
}
これをオブジェクトに渡すとハングアップします。 2つの質問。オブジェクトプロパティは、次のように変数名で作成できますか
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");
}
変数プロパティ名を使用する場合は、添え字構文を使用します。
var fieldname = 'test';
//These two lines are equivalent as long as fieldname is 'test':
gridObject[fieldname] = fieldvalue;
gridObject.test = fieldvalue