Мой вопрос: Можно ли добавить один и тот же элемент без перезаписи той же переменной. Я создаю слайдер, и мне нужно добавить div
с классом slide-el
в блок slider
. Вот часть кодаКак appendChild (element) много раз. (Тот же самый элемент)
var body, html, sliderBody, btnLeft, btnRight, i, parts, vHeight, vWidth;
//Variable definitions
var i = 0,
parts = 3,
//Main html elements
body = document.body,
html = document.element,
//viewport Height and Width
vHeight = window.innerHeight,
vWidth = window.innerWidth,
sliderBody = _id("slider"),
btnLeft = _id("btn-left"),
btnRight = _id("btn-right"),
urls = ["http://www.wallpapereast.com/static/images/pier_1080.jpg",
"http://www.wallpapereast.com/static/images/pier_1080.jpg",
"http://www.wallpapereast.com/static/images/pier_1080.jpg",
"http://www.wallpapereast.com/static/images/pier_1080.jpg"];
slide = _createEl("div");
slide.className += "slide-el";
function _id(el){
return document.getElementById(""+ el +"");
}
function _createEl(el){
return document.createElement(""+ el +"");
}
window.onload = function(){
slideLayout();
}
function slideLayout(){
for(var i=0; i < urls.length; i++){
sliderBody.appendChild(slide);
}
}
Проблема заключается в том, что я не могу добавить один и тот же элемент, который во много раз. Он создает один элемент вместо 4.
Для вас, чтобы лучше понять, я сделал скрипку:
https://jsfiddle.net/ud7dvn3z/
расширить свое присутствие на комментарий @ smerny: чем '.cloneNode()' метод узла возвращает копию узла, а не сам узел, что позволяет использовать те же базовый узел несколько раз. Чтобы скопировать дочерние элементы узла, вам нужно использовать 'slide.cloneNode (true)' для выполнения глубокой копии. – shamsup