07.DOM Operations Homework


8

Не видях, някой да е поствал домашното..1задача,  колкото толкова ;д

На който му е нужна може да я намери ТУК :)




Отговори



2
Ето го и моето решение
До автора: имаш грешка при after-a.

EDIT: Колега, линка , който си дал е невалиден в момента.

от Ilian_Iliev_2 (1043 точки)


1
Благодаря, оправен е вече :)

от lllevski (1431 точки)


0
Ето и моето решение ---> Линк, тестовете минават локално.

от Vlaev (155 точки)


0
Ето и моето домашно за 100/100, със и без ES6

от Dawnut (120 точки)


0
Някой успял ли е да вземе точки в бгкодер?
аз получавам run-time error

от vladovv (120 точки)

1
Махни всичко от ES2016  (let, const, arrow функции)

от nivalen292 (273 точки)



0

Имам ли някакъв проблем с решението, или бгкодер се ебава?

function Solve() { return function (element, contents) { if (typeof element === 'string') { element = document.getElementById(element); } else if (!(element instanceof HTMLElement)) { throw Error; } var docFragment = document.createDocumentFragment(); contents.forEach(x => { if (typeof x !== 'string' && typeof x !== 'number') { throw Error; } var newElement = document.createElement("div"); newElement.textContent = x; docFragment.appendChild(newElement); }); element.innerHTML = ''; element.appendChild(docFragment); }; }

Локалните тестове минават.


от olebg (598 точки)


0
Проблема колега е че ползваш т.нар. arrow функции "=>" - незнам защо, но в момента бгкодер не ги поддържа. Като замениш цикъла с нормален for - ще мине всичко.

от qwerty123 (157 точки)


0
Пускам и моето домашно, ако някой се интересува.



0

Здравейте Колеги,

локалните тестове минават, но BG Coder ми дава Грешка по време на изпълнение на всички тестове.
Някаква идея къде греша?

function solve(){
  return function (element, contents) {

    if(!document.getElementById(element)&&!(element instanceof HTMLElement)){
      throw'2'
    }
    var el=document.createElement('div');
    if(element==='undefined'||contents==='undefined'||element===null||contents===null||(!Array.isArray(contents))){
      throw'3';
    }

    for(let i=0;i<contents.length;i+=1){
      if(typeof contents[i]!=='number'&&typeof contents[i]!=='string'){
        throw'4';
      }
    }

    if(typeof element==='string'){
      element=document.getElementById(element);
    }else if(element instanceof HTMLElement){

    }else{
      throw'5';
    }

    while(element.firstChild){
      element.removeChild(element.firstChild);
    }
    let docFrag=document.createDocumentFragment();

    for(let i=0;i<contents.length;i+=1){
      let newDiv=document.createElement('div');
      newDiv.textContent=contents[i];
      docFrag.appendChild(newDiv);
    }

    element.appendChild(docFrag);
   };
}

module.exports = solve;

                 

от ededdy (35 точки)


0
Махни ES6 (let, arrow функции, т.н) и предай в бгкодер без module exports.

от nivalen292 (273 точки)

0
Благодаря nivalen292,

проблема беше в let.

от ededdy (35 точки)


1

Не знам защо BgCoder не приема ES6 нещата, но това е безумно. Заради един let във for цикъл си играх 1 час да пускам в BgCoder докато намеря проблема.

@Към лекторите -> Може ли за изпита BgCoder да започне да приема ES6, както беше на JavaScript OOP например, защото по невнимание и навик, някой let, може да изиграе много тъпа шега на някой?


от mkanovski (552 точки)