Как наполнить DIV.container DIV-ами из цикла с массивом данных?
var starsMassive = [
// ['Company_name',Age,Investments,Economy,Tech,Non-comm,Prediction,Ppl]
['MacroGenic',8,278,522,134,14,40,128],
['Tengion',7,202,415,16,44,83,58],
['Dendreon',5,103,423,107,505,86,147],
['Neomend',4,74,147,56,493,10,31],
['RheoGene',12,664,3139,0,0,348,3],
];
var i;
for (i=0; i<5; i++) {
$(function(){$('.sky1').html("<div class='stars' id='"+starsMassive[i][0]+"' style='width:100px;height:100px;'></div>");});
}
<body> <div id='sky_container'> <div class='sky3 layer'> </div> <div class='sky2 layer'> </div> <div class='sky1 layer'> </div> </div> </body> <script type='text/javascript' src='js/script.js'></script> </html> |
У меня вставляет только 1 DIV #5 и все. Видимо inner.html заменяет содержимое контейнера. А как сделать чтобы ДОБАВЛЯЛО?
|
Я понял! надо не .html использовать а .append
$(function(){$('.sky1').append("<div class='stars' id='"+starsMassive[i][0]+"' style='width:100px;height:100px;'>
|
Теперь проблема с другим:
Uncaught TypeError: Cannot read property '0' of undefined строка 13 JS как вытащить корректные данные из массива? |
Цитата:
|
ViRuSreloaded,
а вы сам то массив корректным сделайте |
А почему starsMassive[i][0] UNDEFINED ????? :(
|
А как его сделать корректным? где ошибка?
|
ViRuSreloaded,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>
<body>
<div id='sky_container'>
<div class='sky3 layer'>
</div>
<div class='sky2 layer'>
</div>
<div class='sky1 layer'>
</div>
</div>
<script>
var starsMassive = [
// ['Company_name',Age,Investments,Economy,Tech,Non-comm,Prediction,Ppl]
['MacroGenic',8,278,522,134,14,40,128],
['Tengion',7,202,415,16,44,83,58],
['Dendreon',5,103,423,107,505,86,147],
['Neomend',4,74,147,56,493,10,31],
['RheoGene',12,664,3139,0,0,348,3]
];
var i;
for (i=0; i<5; i++) {
$('.sky1').append("<div class='stars' id='"+starsMassive[i][0]+"' style='width:100px;height:100px;'>"+starsMassive[i][0]+"</div>");
}
</script>
</body>
</html>
|
Я просто не весь HTML вставил чтобы не засорять. Так то все на месте:
<!doctype html> <html lang=''> <head> <meta charset='utf-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1'> <link rel='stylesheet' href='style.css'> <script src="js/jquery-1.11.1.js" type="text/javascript"></script> <link href='http://fonts.googleapis.com/css?family=Dosis:200,300,400,500,600,700' rel='stylesheet' type='text/css'> </head> Вот это стоИт. |
Цитата:
|
Цитата:
|
поставил Вашу строку
$('.sky1').append("<div class='stars' id='"+starsMassive[i][0]+"' style='width:100px;height:100px;'>"+starsMassive[i][0]+"</div>");
В чем ошибка в моей? |
ААААААААААААААА Вау ТОварисечэ!!!!! ОГРОМНОЕ СПАСИБО!!!!
|
Осталось 2 математических вопроса:
1) Как сделать такое условие, чтобы в зависимости от максимального цифрового значения колонки в массиве, другие DIV-ы рисовались пропорционально значению. Например "+starsMassive[5][0]+"=3139. Это максимальное значение. В этом случае ширина и высота дива "100px", а "+starsMassive[i][3]+"=522. значит ширина и высота примерно "15px" 2) Как сделать чтобы в зависимости от размера DIV-а он бы вставлялся в <div class='.sky1'> если размер <33px в <div class='.sky2'> если размер >33px <66px в <div class='.sky1'> если размер >66px <100px |
ViRuSreloaded,
var a = (starsMassive[i][3] * 100)/starsMassive[5][0]; var x = a < 33 ? '.sky2' : '.sky1'; $(x).append... |
| Часовой пояс GMT +3, время: 17:48. |