Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как наполнить DIV.container DIV-ами из цикла с массивом данных? (https://javascript.ru/forum/dom-window/52391-kak-napolnit-div-container-div-ami-iz-cikla-s-massivom-dannykh.html)

ViRuSreloaded 17.12.2014 13:38

Как наполнить 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>

ViRuSreloaded 17.12.2014 13:39

У меня вставляет только 1 DIV #5 и все. Видимо inner.html заменяет содержимое контейнера. А как сделать чтобы ДОБАВЛЯЛО?

ViRuSreloaded 17.12.2014 13:53

Я понял! надо не .html использовать а .append
$(function(){$('.sky1').append("<div class='stars' id='"+starsMassive[i][0]+"' style='width:100px;height:100px;'>

ViRuSreloaded 17.12.2014 13:55

Теперь проблема с другим:
Uncaught TypeError: Cannot read property '0' of undefined
строка 13 JS
как вытащить корректные данные из массива?

рони 17.12.2014 13:57

Цитата:

Сообщение от ViRuSreloaded
html

append

рони 17.12.2014 13:59

ViRuSreloaded,
а вы сам то массив корректным сделайте

ViRuSreloaded 17.12.2014 13:59

А почему starsMassive[i][0] UNDEFINED ????? :(

ViRuSreloaded 17.12.2014 14:00

А как его сделать корректным? где ошибка?

рони 17.12.2014 14:00

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>

ViRuSreloaded 17.12.2014 14:02

Я просто не весь 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>

Вот это стоИт.


Часовой пояс GMT +3, время: 03:42.