Loading...
StrahilRuychev avatar StrahilRuychev 117 Точки

[Homework] Advanced JS - Functions and function expressions - Problem{7} DOM Manipulation

Забелязах две грешки в условието на задачата и по-конкретно в sample кода. Поне засега са само две. 

// Appends a list item to ul.birds-list

domModule.appendChild(liElement,".birds-list"); - тук реда на аргументите е сменен. liElement e детето, което трябва да се добави, т.е. трябва да се подаде второ.

// Adds a click event to all bird list items

domModule.addHandler("li.birds", 'click', function(){ alert("I'm a bird!") }); - доста чаках да закачи евенти на птичките, докато не смених li.birds на li.bird...

 

 

 

Тагове:
4
JavaScript Advanced
dim4o avatar dim4o 288 Точки

Здравейте, аз също имам един проблем с тази задача. Следния код не ми работи коректно:

function appendChild(element, child){
    var parent = document.querySelectorAll(element);
    var childNode = document.createElement(child);

    for (var i = 0; i < parent.length; i++) {
        parent[i].appendChild(childNode);
    }
}


Например ако го приложа appendChild("li", "a"); към един списък от рода (ul)((li)(li)(li)(li))(ul) ми го прилага само на последния child елемент - li; 

 

0
08/03/2015 15:41:11
dim4o avatar dim4o 288 Точки

Реших проблема => parent[i].appendChild(childNode.cloneNode()); Обяснено е добре тук.

1
Filkolev avatar Filkolev 4482 Точки

Аз доколкото разбрах условието само на един елемент трябва да се закачи, т.е. ползвах за тази функция querySelectior(). Но е доста полезно това, което си открил.

0
dim4o avatar dim4o 288 Точки

Аха, ами може и да имат впредвид само един елемент наистина. Аз се водих от това:

"If any selector is passed to the module, it should find (and manipulate) all elements the selector corresponds to ", т.е. в случая на всички <li>-та от DOM-a закачам <а> примерно. Така поне го разбирам аз.

0
08/03/2015 17:39:01
StrahilRuychev avatar StrahilRuychev 117 Точки

да, и аз така го разбрах.

0
StrahilRuychev avatar StrahilRuychev 117 Точки

Доколкото разбирам условието, и element и child могат да бъдат както селектори, така и елементи. Затова аз първо проверявам дали са селектори и ако са, тогава извиквам querySelectorAll. Ако не са - е, тогава нещата са доста по-прости...

0
Filkolev avatar Filkolev 4482 Точки

Да, проверката дали са елементи (ако не са значи са селектори) и аз я правя. Само в случая appendChild ползвам querySelector, навсякъде другаде съм с querySelectorAll, може да го сложа да е и в appendChild.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Явно и аз съм се сблъскал със същите проблеми, както повечето от вас на тази задача. В google обаче успях да намеря лесно решенията на всичките ми проблеми. И все пак тъпия IE не поддържа ":scope > "... Ето моето решение на тази задача:

07. DOMManipulation

1
08/03/2015 22:20:46
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.