想要使用带有JSON的IF语句

时间:2016-10-24 15:03:38

标签: javascript jquery json

我从非常简单的代码中获取 JSON 文件中的项目并将其显示在 DIV 中。但是,目前我正在根据数组中的顺序访问每个项目。我想在 JSON 文件中更改订单以及每个项目之外添加IF语句。每个项目也有自己的ID。例如,如果 JSON 文件被更改,data[0].itemName可能会变为data[1].itemName

(function() {

 'use strict';

 var url = 'path to json';

 $.getJSON(url, function(data) {

            $('#recipeIngredients').html(

            "<ul>" + 
                "<li>" + '1/2 tsp salt' + "</li>" +
                "<li>" + '2 cups ' + (data._id == "1" ? data.itemName : " ") + "</li>" +
                "<li>" + data.itemName + "</li>" +
            "</ul>");

 });

})();

JSON 如下:

var data = [ { "itemName" : "exampleItem1", "_id" : "1" }, { "itemName" : "exampleItem2", "_id" : "2" } ]

2 个答案:

答案 0 :(得分:1)

测试此示例

&#13;
&#13;
var data = [{
  "id": "1",
  "itemName": "exampleItem1"
}, {
  "id": "2",
  "itemName": "exampleItem2"
}];
var ul = "<ul>";
for (var i = 0; i < data.length; i++) {
  ul += "<li>" + '1/2 tsp salt' + "</li>" +
    "<li>" + '2 cups ' +
    (data[i].id == "2" ? data[i].itemName : " ") +
    "</li>" +
    "<li>" + data[i].itemName + "</li>";

}
ul += "</ul>";
document.body.innerHTML = ul;
&#13;
&#13;
&#13;

&#13;
&#13;
var data = [{
  "id": "1",
  "itemName": "exampleItem1"
}, {
  "id": "2",
  "itemName": "exampleItem2"
}];
var ul = "<ul>";
for (var i = 0; i < data.length; i++) {
  ul += "<li>" + '1/2 tsp salt' + "</li>" +
    "<li>" + '2 cups ';
//if statement should like this
if(data[i].id == "2") ul += data[i].itemName;
//add else if you want
else ul += "_ _ _";

  ul += "</li>" +
    "<li>" + data[i].itemName + "</li>";

}
ul += "</ul>";
document.body.innerHTML = ul;
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我认为你是从错误的角度来解决这个问题。

您的数据结构当然应该包含每个食谱项目的数量(和度量单位)吗?一个只能显示需要2杯特定成分的配方的系统将非常不灵活!

假设您控制JSON结构的内容,类似下面的内容会更好:

var data = [{"id": "1", "itemName": "salt", "itemQty": "1/2 tsp"},
            {"id": "2", "itemName": "flour", "itemQty": "2 cups"},
            {"id": "3", "itemName": "Eggs", "itemQty": "2"}];

document.write("<ul>");
for (var i = 0; i < data.length; i++) {
    document.write("<li>" + data[i].itemQty + " " + data[i].itemName);
}
document.write("<ul>");

然后你的UI代码只是输出给它的数据 - 不需要嵌入逻辑。