можем да зададем в методите отрицание, така че в контекста на заданието, което разглеждаме сега да изберем "Всички линкове БЕЗ този, който e препратка към education? Въпросът ми може да е преждевременен, понеже не знам какво е изучава по- нататък в курса, но сметнах моментът за удачен.
document.querySelectorAll('a:not([href=#education])');
console.log(document.querySelectorAll('a:not([href=#education])'); тук края ми го изкарва грешно console.log(document.querySelector('header nav(a[href="#education"])'); лседвам примера на колегата 5
инж. Юлиан Ангелов Професия / Специалност Как можем да зададем в методите отрицание, така че в контекста на заданието, което разглеждаме сега да изберем "Всички линкове БЕЗ този, който e препратка към education? Въпросът ми може да е преждевременен, понеже не знам какво е изучава по- нататък в курса, но сметнах моментът за удачен.
1
Борис Митев отговори document.querySelectorAll('a:not([href=#education])')
да освен за методът querySelector и за другите методи да използваме All ако не знаем колко резултата да очакваме. Как да знаем дали методът дава като отговор всички резултати в колекция, а не само първият и как да сме убедени, че не пропускаме резултат? Докато работим над наш документ - знаем къде какво има или какво да очакваме в него, но ако е писан от друг или има модули в съавторство?
Методите getElementsByTagName, getElementsByClassName и т.н. винаги връщат колекции от всички елементи отговарящи на условията. Това се разбира от множественото число в името Elements. Само getElementById връща първият намерен елемент т.к. се очаква в документа id-тата да са уникални. Това се вижда по Element в единствено число.
Абсолютно
Предполагам да се направи дебъгване. Атом платформата има ли дебъгване, подпомагащо кода, както в друг програмен език.
Не разбирам съвсем въпросът, но що се отнася до дебъгване - най-добрият вариант е използването на конзолата на Chrome или Firefox. До сега не съм срещал редактор, който дори да се доближава функционало до браузърите по отношение на дебъгване на HTML, CSS и JavaScript
Не намирам обяснение защо ето този ред:
console.log(document.querySelectorAll('header nav a'));
се интерпретира нормално в конзолата, а долният дава грешка:
console.log(document.querySelector("header nav a[href="#education"]"));
Проблемът е в кавичките. Вложените двойни кавички объркват интерпретацията на аргумента на функцията "header nav a[href="#education"]". Тук за интерпретатора въобще не е ясно, че #education е вложеният стринг, тъй като "header nav a[href=" се превръща в един самостоен стринг /имате отворени и след това затворени двойни кавички/. Така отсичате неправилно аргумента на функцията и ще получите синтактична грешка.
Можете да решите проблема като заместите едната двойка двойни кавички с единични. Следователно следните две извиквания ще работят: console.log(document.querySelector("header nav a[href='#education']")); Тук външните кавички са двойни, а вътрешните единични, но няма объркване за интерпретатора и е ясно, че #education е вложеният стринг или console.log(document.querySelector('header nav a[href="#education"]')); Тук външните кавички са единични, а вътрешните двойни, но отново няма объркване за интерпретатора и е ясно, че #education е вложеният стринг