如何在.replace()函数

时间:2017-05-08 23:37:57

标签: javascript html arrays json replace

我有一个jSON数组的问题。我试图达到显示整个阵列的程度。我能够在控制台中看到它,但是当我在:

中完全相同时
  

.replace(“{ingredients}”,d.ingredientName);

我到了未定义的地步。 我不想达到这样的目的:

  

.replace(“{ingredients}”,d [0] .ingredientName);

等等。

var i = '<?php echo json_encode($json) ?>';
var b = JSON.parse(i);
var c = '<?php echo json_encode($jObj) ?>';
var d = JSON.parse(c);
console.log(d);

var t = '<div class="col-lg-12">\
<h1>{name}</h1>\
   <img class="col-lg-6" src="{photo}" alt="img">\
     <div class="caption">\
       <h4>{ingredients}</h4>\
        <h4>{description}</h4>\
   </div>\
</div>';

var tu = t.replace("{photo}", b[0].photo)
.replace("{name}", b[0].recipeName)
.replace("{description}", b[0].recipeDescription)
.replace("{ingredients}", d.ingredientName);

$(".pcontainer").append(tu);

这是我想要显示的json数组:

  

[{“ingredientName”:“milk”},{“ingredientName”:“phad thai   酱“},{”ingredientName“:”米粉“}]

1 个答案:

答案 0 :(得分:0)

您应该使用循环将每个成分添加到新字符串中,然后用该字符串替换{ingrediens}。

例如:

&#13;
&#13;
var listOfIngredientsHTML = "";

for (ingredient of d) {
  if (listOfIngredientsHTML.length === 0) {
    listOfIngredientsHTML += "," + ingredientName
  } else {
    listOfIngredientsHTML += ingredientName
  }
}

var tu = t.replace("{photo}", b[0].photo)
.replace("{name}", b[0].recipeName)
.replace("{description}", b[0].recipeDescription)
.replace("{ingredients}", listOfIngredients);
&#13;
&#13;
&#13;