Вывод div'ов
Доброго времени суток, просьба помочь в следующем вопросе
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Первый сайт</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<div id="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="b"></div>
</body>
<style>
.b{
height:100px;
width:100px;
background:grey;
float:left;
margin-right:2px;
}
.a{
height:100px;
width:100px;
background:black;
float:left;
margin-right:2px;
}
</style>
<script>
window.onload = function(){
var black = document.querySelectorAll('.a');
var grey = document.querySelector('.b');
var i = 0;
black.length=grey.length;
for(i=0;i<black.length;i++){
console.log(grey);
}
}
</script>
</html>
Нужно вывести на страницу те самые блоки которые находятся в переменной grey. Есть вариант с помощью cloneNode, но если таким образом делать, в дальнейшем не получается обратиться к отдельному элементу созданного списка, как еще подобные задачи можно в js реализовать? |
Igor710,
для начала, id должен быть уникален |
Цитата:
|
Цитата:
|
Цитата:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Первый сайт</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="b" ></div>
<div id="output"></div>
</body>
<style>
.b{
height:100px;
width:100px;
background:grey;
float:left;
margin-right:2px;
}
.a{
height:100px;
width:100px;
background:black;
float:left;
margin-right:2px;
}
.hide{
display: none;
}
</style>
<script>
window.onload = function(){
var black = document.querySelectorAll('.a');
var grey = document.querySelector('.b');
var i = 0;
var t;
for(i=0;i<black.length;i++){
t = grey.cloneNode(true);
document.body.append(t);
console.log(t);
}
t[0].classList.add('hide');
}
</script>
</html>
Имел ввиду что можно таким образом реализовать, но пытаясь скрыть первый элемент натыкаюсь на ошибку, выходит что к клонированному списку по индексу обратиться не получается, поэтому интересуюсь каким еще образом на страницу можно вывести блок .b количеством равным блокам .а |
Если clonNode не катит я хз конечно
так пойдет? :blink:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Первый сайт</title>
<style>
#b{
height:100px;
width:100px;
background:grey;
float:left;
margin-right:2px;
}
#a{
height:100px;
width:100px;
background:black;
float:left;
margin-right:2px;
}
</style>
</head>
<body>
<div id="a"></div>
<div id="a"></div>
<div id="a"></div>
<div id="a"></div>
<div id="a"></div>
<div id="a"></div>
<div id="b"></div>
<script>
var black = document.querySelectorAll('#a');
var grey = document.querySelector('#b');
var i = black.length;
while (i--) document.body.innerHTML += grey.outerHTML;
</script>
</body>
</html>
|
может в этом дело?
black.length=grey.length; Вы обрезали массив black (до оного элемента в данном случае) |
Цитата:
|
Цитата:
|
Igor710,
:-? возможно вы хотели так ...
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Первый сайт</title>
<style>
.b{
height:100px;
width:100px;
background:grey;
float:left;
margin-right:2px;
}
.a{
height:100px;
width:100px;
background:black;
float:left;
margin-right:2px;
}
.hide{
display: none;
}
</style>
</head>
<body>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="a"></div>
<div class="b" ></div>
<div id="output"></div>
<script>
window.onload = function(){
var black = document.querySelectorAll('.a');
var grey = document.querySelector('.b');
var i = 1;
var t;
for(;i<black.length;i++){
t = grey.cloneNode(true);
document.body.insertBefore(t,grey);
console.log(t);
}
grey.classList.add('hide');
}
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 00:05. |