首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用jQuery从JSON对象中的数组中获取值?

如何使用jQuery从JSON对象中的数组中获取值?
EN

Stack Overflow用户
提问于 2018-12-05 04:05:44
回答 1查看 30关注 0票数 0

下面是JSON对象:

代码语言:javascript
复制
{
  'id' => 'itemGuitar',
  'description' => 'Pete Townshend once played this guitar while his own axe was in the shop having bits of drumkit removed from it.',
  'price' => 5695.99,
  'urls' => array('http://www.thewho.com/',
                  'http://en.wikipedia.org/wiki/Pete_Townshend')
}

下面是我的getJSON代码:

代码语言:javascript
复制
$.getJSON("getDetailsJSON.php?ImageID=" + escape(itemName), function (json) {
         var info = "<p>id: " + json["id"] + "</p>" +
             "<p>description: " + json["description"] + "</p>" +
             "<p>price: $" + json["price"] + "</p>" +
             "<p>urls:</p><ul>";
        $.each(json["urls"], function (i) {
             info += "<li><a href='" + this[i] + "'>" + this[i] + "</a></li>";
        });
        info += "</ul>";
        $("#description").append(info);
 });

具体来看:

代码语言:javascript
复制
$.each(json["urls"], function (i) {
     info += "<li><a href='" + this[i] + "'>" + this[i] + "</a></li>";
});

我的问题是"urls“循环中的值是不正确的。我获取列表形式的https,一次只有一个字母,而不是每个包含完整地址的列表元素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-05 04:11:23

jQuery documentation for each

在数组的情况下,每次向回调传递数组索引和相应的数组值。(该值也可以通过 this 关键字进行访问,但是Javascript将始终将this值包装为Object,即使它是一个简单的字符串或数字值。)

因此,在您的代码中,i是迭代中当前元素的索引,而this是当前url。

代码语言:javascript
复制
$.each(json["urls"], function (i) {
     info += "<li><a href='" + this + "'>" + this + "</a></li>";
});

或者更好的方法是显式地使用value参数

代码语言:javascript
复制
$.each(json["urls"], function (i, url) {
     info += "<li><a href='" + url + "'>" + url + "</a></li>";
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53620623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档