来自对象的字典列表 - 从字段中获取单个值

时间:2011-07-13 15:58:43

标签: jquery

[{"pk": 1, "model": "social.thing", "fields": {"content": "this is good", "visible": true, "user": 1, "parent": [2], "title": "hat i like"}}, {"pk": 5, "model": "social.thing", "fields": {"content": "because must be good", "visible": true, "user": 1, "parent": [2], "title": "another good thing"}}]

是否有可能从我的列表中的一个字典中附加一些DOM元素单个值。例如,如何从此列表中选择"pk":1

3 个答案:

答案 0 :(得分:2)

您可以通过索引[0]访问主阵列中的第一个对象,然后通过pk访问.pk属性的值。

var arr = [{"pk": 1, "model": "social.thing", "fields": {"content": "this is good", "visible": true, "user": 1, "parent": [2], "title": "hat i like"}}, {"pk": 5, "model": "social.thing", "fields": {"content": "because must be good", "visible": true, "user": 1, "parent": [2], "title": "another good thing"}}];

alert( arr[0].pk );  // 1

示例: http://jsfiddle.net/FBjuW/

...或者你可以遍历外部数组以获得每个索引的pk值。

for( var i = 0, len = arr.length; i < len; i++ ) {
    alert( arr[ i ].pk );
}

示例: http://jsfiddle.net/FBjuW/1/

我不知道你在谈论什么DOM元素,但如果需要,你可以将结果值附加到你的元素。


编辑:

如果您正在进行DOM选择,并且需要在找到的每个结果中附加pk值,则可以执行以下操作:

$('.mySelector').append(function( i ) { return arr[ i ].pk; });

这使用append()[docs]方法并将函数传递给它。返回值是附加的值。

i参数表示迭代期间当前匹配元素的索引号。

答案 1 :(得分:1)

使用jQuery,您可以访问每个'pk'的值:

$.each(arr, function(index, value) {
    if(value.pk)
        alert(value.pk);
});

答案 2 :(得分:1)

如果你试图获得'pk'的值应该能够使用字符串like和object。 您可能必须使用JSON和stringify进行一些转换。

字符串表示一个对象。 每组{}都是具有自己属性的另一个对象。

var o = [{"pk": 1, "model": "social.thing", "fields": {"content": "this is good", "visible": true, "user": 1, "parent": [2], "title": "hat i like"}}, {"pk": 5, "model": "social.thing", "fields": {"content": "because must be good", "visible": true, "user": 1, "parent": [2], "title": "another good thing"}}];

alert(o.pk);
alert(o.fields[0].title);