使用对象

时间:2018-05-12 14:10:01

标签: javascript jquery

我有这种格式的数组:

var items = [{
        "link": {
            "0": "http://www.example.com/"
        },
        "title": {
            "0": "example"
        }
    }, {
        "link": {
            "0": "http://www.example2.com"
        },
        "title": {
            "0": "example2"
        }
    }]

我无法弄清楚如何遍历它并在HTML中显示其值。

我正在使用jquery并尝试使用每个循环:

$.each( items, function(i, item) {
        console.log(item); // Uncaught TypeError: Cannot use 'in' operator to search for '6271' in
    })

帮助表示感谢。谢谢!

编辑:

您的代码适用于我在上面发布的示例。我会接受asasp。 然而我注意到真正的json我试图循环并不总是正确格式化导致崩溃:

var items = [{
        "link": {
            "0": "http://www.example.com/"
        },
        "title": {
            "0": "example"
        }
    }, {
        "link": {
            "0": "http://www.example2.com"
        },
        "title": {
            "0": "example2: "
            some text here ""
        }
    }]

当循环这个数组时,我得到:

Uncaught SyntaxError: Unexpected identifier

有没有办法可以跳过所有“破损”的物体?

2 个答案:

答案 0 :(得分:0)

快而脏:

for (item of items) {
  console.log(item.link[0])
  console.log(item.title[0])
}

答案 1 :(得分:0)

您可以使用解决方案

var items = [{
  "link": {
      "0": "http://www.example.com/"
  },
  "title": {
      "0": "example"
  }
}, {
  "link": {
      "0": "http://www.example2.com"
  },
  "title": {
      "0": "example2"
  }
}];

$.each( items, function(i, item) {
  $("body").append(`<span class="title">${item.title["0"]}:</span> <span>${item.link["0"]}</span><br/>`);
});
.title {
  font-weight: bold;
  font-size: 16px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

每个item都是一个对象,用于获取我在解决方案中提供的链接值。