【发布时间】:2019-04-13 14:05:11
【问题描述】:
我有一些 JSON 用于试验欧几里得相似性,作为迈向机器学习的第一步。我有一些使用 HTML 和 CSS 创建的按钮,但我需要一种方法将 JSON 的某些部分附加到每个按钮。你可以在similarity 函数中看到我对此相当可怜的尝试。如果我不够具体,请让我详细介绍;例如,对于电影 Dunkirk,我希望在单击该按钮时显示 Dunkirk 的对象。对于脑震荡,我希望显示脑震荡的对象......等等。
<div id="dunk" class="movie">
<div class="text">Dunkirk</div>
</div>
<div id="conc" class="movie">
<div class="text">Concussion</div>
</div>
<div id="indep" class="movie">
<div class="text">Independence</div>
</div>
<div id="freesolo" class="movie">
<div class="text">Free Solo</div>
</div>
<div id="submit">
<div id="text">Submit</div>
</div>
.movie {
height:50px;
width:80px;
background-color:grey;
}
.movie:hover {
background-color:lightgrey;
cursor:pointer;
}
#submit {
height:50px;
width:80px;
background-color:black;
}
#submit:hover {
background-color:darkgrey;
cursor:pointer;
}
let data =
[
[{
"name": "Dunkirk",
"action": 7,
"suspense": 9,
"drama": 5,
"character": 2,
"romance": null,
"comedy": null,
"sci-fi": null,
"interestFactor": 7
}],
[{
"name": "Concussion",
"action": null,
"suspense": 7,
"drama": 8,
"character": 9,
"romance": 3,
"comedy": null,
"sci-fi": null,
"interestFactor": 10
}],
[{
"name": "Independence Day: Resurgence",
"action": 9,
"suspense": 6,
"drama": 3,
"character": 6,
"romance": 2,
"comedy": null,
"sci-fi": 9,
"interestFactor": 5
}],
[{
"name": "Free Solo",
"action": 3,
"suspense": 10,
"drama": 10,
"character": 8,
"romance": null,
"comedy": null,
"sci-fi": null,
"interestFactor": 10
}]
];
let jString = JSON.stringify(data);
let parseData = JSON.parse(jString);
console.log(parseData[0][0]);
let options = document.querySelectorAll(".movie");
let submit = document.getElementById("submit");
submit.addEventListener('click', similarity);
function similarity(){
options.forEach((el) => {
el.addEventListener('click', function(ev){
console.log(parseData[el][el].name);
});
});
console.log("it worked");
};
【问题讨论】:
-
为什么对象嵌套在两个数组中? i:e 外部数组,然后是每个单独对象的数组。
-
我没有看到按钮 按钮在哪里?我更喜欢 div
-
@randomSoul 所以我可以轻松地通过 JSON 建立索引,我本可以花更多时间考虑格式化,但我对 JSON 没有太多经验。
-
@ShoyebSheikh Div 有事件监听器,查看
similarity函数,您会看到 - 如果不清楚,请见谅。 -
点击事件仅在您点击提交时分配给 div。立即附加这些事件,完全摆脱提交按钮,您将更接近有效的解决方案。
标签: javascript html json