создание многоуровневого фрагмента документа

0

поэтому я пытаюсь создать многомерный фрагмент документа и нахожусь в небольшом дорожном блоке. Я хочу только добавить один фрагмент документа, чтобы создать только один повтор. Я в основном пытаюсь создать x число div с y количеством div внутри. Моя первоначальная мысль заключалась в том, чтобы добавить divs во вновь созданный элемент, но он, похоже, не работает. У меня просто есть 2 для операторов, первый из которых - это большие div, которые войдут внутрь родителя, а второй - для дочерних div, которые будут внутри больших div, которые войдут внутрь родителя. Я думаю, что я ошибаюсь, когда после создания фрагмента документа, чтобы поместить все div, я пытаюсь вставить это в элемент, который еще не находится в DOM. Хотя я не уверен. Любая обратная связь будет полезна. Мне еще предстоит найти статью о создании многоуровневых фрагментов документа.

function addDivs(element) {
    var newDiv, fragment = document.createDocumentFragment();
    for (var i = 0; i < numberOfPics; i++) {
        newDiv = document.createElement('div');
        var newBabyDiv, newBabyFragment = document.createDocumentFragment();
        for(var i1 = 0; i1 < o.sliceX*o.sliceY; i1++){
            newBabyDiv = document.createElement('div');
            newBabyFragment.appendChild(newBabyDiv);
        }
        newDiv.append(newBabyFragment);
        newDiv.id = (picIdRoot+i);
        newDiv.className = (o.allPictures);
        if (i < numberOfPics - 3){
        }else if(i == numberOfPics - 2){
            newDiv.className = (o.allPictures+" "+o.currentPic);
        }else if(i == numberOfPics - 1){
            newDiv.className = (o.allPictures+" "+o.currentPic+" "+o.picAfterCurrent);
        }else{}
        fragment.appendChild(newDiv);
    }

    //fill the style element with text
    var style = document.createElement("style");
    style.id = "slideShow-styling";
    fragment.appendChild(style);

    //append to slideshow container
    slideShowContainer.append(fragment);
}

РЕДАКТИРОВАТЬ

for(var i1 = 0; i1 < o.sliceX*o.sliceY; i1++){
    newDiv.append(document.createElement('div'));
}

это редактирование, к сожалению, не работает

  • 0
    добавьте дочерние div к родительскому div, фрагмент не нужен.
  • 0
    нравится? for (var i1 = 0; i1 <o.sliceX * o.sliceY; i1 ++) {newDiv.append (document.createElement ('div'))); }
Показать ещё 2 комментария
Теги:
for-loop
documentfragment

1 ответ

0

Я знаю, что опаздываю на вечеринку, и сама проблема, вероятно, была решена (или прекращена) с тех пор.

Отредактированная часть

for(var i1 = 0; i1 < o.sliceX*o.sliceY; i1++){
    newDiv.append(document.createElement('div'));
}

Это не работает, потому что newDiv здесь не имеет метода append, это DOMElement, а не что-то похожее на jQuery. Правильный синтаксис для работы с узлами DOMElement будет

for(var i1 = 0; i1 < o.sliceX*o.sliceY; i1++){
    newDiv.appendChild(document.createElement('div'));
}

Полностью не связанный с запросом

Пока я нахожусь в этом, вы должны понять, что часть o.sliceX*o.sliceY оценивается для каждой итерации цикла, я бы изменил это на

for(var i1 = 0, len = o.sliceX*o.sliceY; i1 < len; i1++){...}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню