javascript - 从具有特定属性的数组中获取项目并将它们显示在一个 div 上

标签 javascript jquery json

例如:

{
  "data": [
    {
      "name": "grape",
      "color": "purple"
    },
    {
      "name": "apple",
      "color": "green"
    },
    {
      "name": "strawberry",
      "color": "red"
    }
  ]
}

我用这个遍历数组:

for (var i=0; i < data.length; i++) {
  var item = "<button>"+data[i].name+"</button>";
  $('#items').append(item)
}

假设我想要它,所以当您单击按钮时,显示 color 值的 div,但使用相同的 div 为数组中的每个项目。我该怎么做?

最佳答案

向按钮添加事件处理程序。它在 data 数组中搜索与按钮文本同名的对象,并显示颜色。

var data = [{
    "name": "grape",
    "color": "purple"
  },
  {
    "name": "apple",
    "color": "green"
  },
  {
    "name": "strawberry",
    "color": "red"
  }
];

for (var i = 0; i < data.length; i++) {
  var item = "<button data-color=" + data[i].color + ">" + data[i].name + "</button>";
  $('#items').append(item)
}

$("button").click(function() {
  var name = $(this).text();
  var obj = data.find(el => el.name == name);
  $("#outputdiv").text(obj.color);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="items"></div>
<div id="outputdiv"></div>

关于javascript - 从具有特定属性的数组中获取项目并将它们显示在一个 div 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55838633/

相关文章:

javascript - 在 Twitter BootStrap 嵌套下拉列表中托管一个选择列表(特定于 IE 9)

javascript - 使用 javascript 将日期从 dd/mm/yyyy 转换为 yyyy/mm/dd

javascript - 如何在 html 中创建像 Outlook To(收件人姓名)这样的文本框

ios - 如何保留使用 AFNetworking 检索的 JSON 数据的顺序?

php - Highcharts 和 Mysql

javascript - AngularJS orderby 整数字段无法正常工作

javascript - 获取链接文本的正则表达式

javascript - 我怎样才能让标签固定在他们的位置?

javascript - 为什么事件在 Firefox 中未定义?

python - 如果条件适用,添加特定字典字段