2016-04-14 55 views
0

Sorumu: Aynı öğeyi tekrar yazmadan aynı elemanı eklemek mümkün mü? Bir sürgü oluşturuyorum ve div numaralı slide-el sınıfını slider numaralı bloğa eklemem gerekiyor. Burada sorun ben birçok kez aynı eleman eklemek edemezler kodÇok kez nasıl eklenir (öğe). (Aynı 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); 
    } 
} 

bir parçasıdır.

https://jsfiddle.net/ud7dvn3z/

+1

@ smerny yorumuyla ilgili genişletmek için: '.cloneNode()' Bir düğümün yöntemi yerine düğüm kendisinden daha düğümün bir kopyasını döndürür, aynı kullanmasına izin temel düğüm birden çok kez. Düğümün çocuklarını da kopyalamak için, derin bir kopya gerçekleştirmek için 'slide.cloneNode (true)' kullanmanız gerekir. – shamsup

cevap

2

appendChild onun yeni konumuna eklemeden önce olduğu yerden düğüm kaldırmak ve böylece bunları yerine düğümün kopyalarını yapmak gerekir. Bunun için cloneNode kullanabilirsiniz:

for(var i=0; i < urls.length; i++){ 
    sliderBody.appendChild(slide.cloneNode()); 
} 
0

Okey adamlar: daha iyi anlamak için bir keman yapımı için sadece yerine 4.

biri öğesi oluşturur! Bir cevap buldum. for döngüsüne

'u yerleştirmem gerekiyor. Şimdi şuna benzer:

for(var i=0; i < urls.length; i++){ 
    slide = _createEl("div"); 
    slide.className += "slide-el"; 
    sliderBody.appendChild(slide); 
}