嗨,大家需要一些帮助,因为我是javascript的开头请注意,我的问题可能是一个副本给你们所有,但我需要一点启示这里,无论如何我需要显示我需要的数据JSON数组让我说我有3个数组
var = countrysites[ "Denmark"],["United States"],["France"]
如果我使用基本的javascript Onclick单击丹麦的标记,它将显示丹麦的数据,而不是调用美国和法国的所有数据。这是我的javascript代码
function displayData(){
for (var i = 0; i < countrysites.length; i++) {
if (countrysites[i].country_name === id) {
countrysites[i].country_name = country_name;
}
}
}
我的div的id为'sitemark',并且显示了displayData
提前谢谢
答案 0 :(得分:-1)
如果您要通过多维数组,那么您必须使用两个for循环
for(var i = 0; i < arr.length; i++) {
for(var j = 0; j < arr[i].length; j++) {
if(whatever you're looking for) {
}
}
}
答案 1 :(得分:-1)
我已经采取了一些自由来回答这个问题,因为我仍然不确定你的数据结构是什么样的,但希望这会有所帮助。
以下是您作为JSON接收的数据,然后您将其解析。它的对象数组,每个对象包含country_name
和info
属性。
const countryInfo = [
{ country_name: 'Denmark', info: 'This is Denmark' },
{ country_name: 'England', info: 'This is England' },
{ country_name: 'Japan', info: 'This is Japan' }
];
出于 DEMO 的目的,我们抓取body
元素,然后从数据中获取只是国家/地区名称的数组
const body = document.querySelector('body');
const names = countryInfo.map(obj => obj.country_name);
我们使用该数组数据构建一些标记,并将它们添加到body
元素。请注意数据属性data-name
。我们在此处存储国家/地区名称的副本。
names.forEach(name => {
const html = `<div class="sitemark" data-name="${name}">${name}</div>`;
body.insertAdjacentHTML('beforeend', html);
});
我们抓住info
元素。这是我们添加国家/地区信息的地方。
const info = document.querySelector('#info');
我们抓住标记并向它们添加事件监听器。单击一个时,请调用displayData
函数。
const sitemarks = document.querySelectorAll('.sitemark');
sitemarks.forEach(marker => {
marker.addEventListener('click', displayData, false);
});
要获取countryinfo,我们会在find
数组上执行countryInfo
操作,该数组会拉出第一个对象实例,其中国家/地区名称与data-name
属性中的名称相同元素,然后从该对象获取info
值。然后我们将该文本添加到info
元素。
function displayData() {
const text = countryInfo.find(obj => obj.country_name === this.dataset.name).info;
info.innerHTML = text;
}