размножить div блоки циклом
Вложений: 2
Всем привет. Есть задание создать HTML-страницу и написать код JavaScript, который будет отображать данные из объекта JSON со структурой следующим образом:
Вложение 3584 Попытался взаимодействовать с JSON через JSON.parse и добавил стили элементам:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#marketing{
width: 100px;
margin: 30px;
padding: 30px;
border: 4px solid black;
background: #9932CC;
text-align:center;
box-shadow: 0 0 20px rgba(0,0,0,2);
}
#sales{
width: 100px;
margin: 30px;
padding: 30px;
border: 4px solid black;
background: #1E90FF;
text-align:center;
}
</style>
</head>
<body>
<div class="mark"><div id="marketing"></div></div>
<div class="sal"><div id="sales"></div></div>
<script>
var s = '{"title" : "marketing"}';
var s1 = '{"title" : "sales"}';
var obj = JSON.parse(s);
var obj1 = JSON.parse(s1);
document.getElementById("marketing").innerHTML +=
obj.title + "<br>";
document.getElementById("sales").innerHTML +=
obj1.title + "<br>";
</script>
</body>
</html>
вот что вышло Вложение 3585 Выглядит как нужно, но мне нужно повторять эти блоки, чтобы один шел за другим несколько раз, как размножить <div class="mark">и <div class="sal">? |
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.marketing{
float:left;
width: 100px;
margin: 10px;
padding: 30px;
border: 4px solid black;
background: #9932CC;
text-align:center;
box-shadow: 0 0 20px rgba(0,0,0,2);
}
.sales{
float:left;
width: 100px;
margin: 10px;
padding: 30px;
border: 4px solid black;
background: #1E90FF;
text-align:center;
}
</style>
</head>
<body>
</body>
<script>
var s = '[{"title" : "marketing"},{"title" : "sales"},{"title" : "marketing"},{"title" : "sales"}]';
var obj = JSON.parse(s);
for(var i = 0; i < obj.length;i++){
var div = document.createElement('div');
div.className = obj[i].title;
div.innerText = obj[i].title;
document.querySelector('body').appendChild(div);
}
</script>
</html>
|
Цитата:
document.querySelector('body').appendChild(div);
еще хотел бы спросить, как лучше добавить звездочки для блоков с "marketing" как на скриншоте в начале поста? |
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
.marketing{
float:left;
width: 100px;
margin: 10px;
padding: 30px;
border: 4px solid black;
background: #9932CC;
text-align:center;
box-shadow: 0 0 20px rgba(0,0,0,2);
}
.marketing:before{
color: #FFD700;
margin-right: 6px;
content: '★'
}
.sales{
float:left;
width: 100px;
margin: 10px;
padding: 30px;
border: 4px solid black;
background: #1E90FF;
text-align:center;
}
</style>
</head>
<body>
</body>
<script>
var s = '[{"title" : "marketing"},{"title" : "sales"},{"title" : "marketing"},{"title" : "sales"}]';
var obj = JSON.parse(s),
body = document.querySelector('body'),
f = document.createDocumentFragment(),
div = document.createElement('div');
obj.forEach(function(el) {
div.className = div.innerText = el.title;
f.appendChild(div.cloneNode(true));
});
body.appendChild(f)
</script>
</html>
|
ALEX1992,
Цитата:
|
| Часовой пояс GMT +3, время: 08:27. |