Jquery Mapael: Как я могу использовать данные таблицы HTML, чтобы заменить этот жестко закодированный пример?
Вот жесткий код, который работает (только 2 состояния):
var myAreas = [];
myAreas = {
"VA": {
value: "6.3",
tooltip: { content: "Virginia freq : 7.2" }
},
"NC": {
value: "5.7",
tooltip: { content: "North Carolina freq : 6.7" }
}
};
$(".mapcontainer").mapael({
map: {
name: "usa_states"
},
areas: myAreas
});
Я пытаюсь использовать результаты в моей таблице HTML, но не могу получить ее в приемлемом формате. Это то, что я пытался:
var data = [];
var rows = $('#tblStateFreq').find('tr');
for (var i = 0; i < rows.length; i++) {
var row = $(rows[i]);
var state = row.find('td').eq(0).text();
var freq = row.find('td').eq(1).text();
data.push({
state,
value: freq,
tooltip: state + " " + freq;
});
}
$(".mapcontainer").mapael({
map: {
name: "usa_states"
},
areas: data
});
массив данных имеет все состояния с правильными данными, но он имеет вид:
0: состояние: подсказка "AK": {content: "AK 7.0"} значение: "7.0"
Я успешно использовал этот подход к табличным данным с помощью flot для линейных и столбцовых диаграмм, но карта выглядит сложнее. Может кто-нибудь помочь. Спасибо
1 ответ
Я нашел то, что искал здесь: возможно ли добавить динамически именованные свойства в объект JavaScript?
Хотя данные жестко закодированы, myAreas[] изначально определяется как массив, но он переопределяется как объект, добавляются myAreas{...} и свойства (состояния).
В моем примере я пытался добавить в свой массив данные [], используя push, который работал, но это не то, что хочет плагин mapeal в качестве аргумента областей.