Comments 23
Это прекрасно, в кои то веки чистый жс
+3
Если делать проверку на наличие класса, то в пункте №8 на самом деле самым лучшим способом было бы использование коллекции classList:
if (myElement.classList.contains("some-class")) {...}
+2
Странный набор, если честно.
Стилем display можно управлять через цсс. Атрибутом hidden — нельзя. Его использование крайне сомнительно, за исключением особо извращенных случаев.
Это метод коллекции classList, и только её. Там вообще все методы полезны, выделять один только toggle() странно.
Нет, он не обязательно вызывает перерисовку страницы.
Уже написали — «наиболее правильно» таки будет проверять через classList.
Не надо писать о том, что NodeList умеет в forEach(). Надо писать о том, что NodeList !== Array, и стоит конвертировать при любой необходимости. Потому что сегодня люди делают forEach() на NodeList, а завтра сделают .map() и обломаются.
№3: свойство hidden
Стилем display можно управлять через цсс. Атрибутом hidden — нельзя. Его использование крайне сомнительно, за исключением особо извращенных случаев.
№4: метод toggle()
Это метод коллекции classList, и только её. Там вообще все методы полезны, выделять один только toggle() странно.
№7: метод getBoundingClientRect()
Нет, он не обязательно вызывает перерисовку страницы.
№8: метод matches()
Уже написали — «наиболее правильно» таки будет проверять через classList.
№13: метод forEach()
Не надо писать о том, что NodeList умеет в forEach(). Надо писать о том, что NodeList !== Array, и стоит конвертировать при любой необходимости. Потому что сегодня люди делают forEach() на NodeList, а завтра сделают .map() и обломаются.
+8
№8: метод matches()
Уже написали — «наиболее правильно» таки будет проверять через classList.
Здесь просто пример неудачный. Через classList правильно проверить наличие класса на элементе, а matches — проверка на соответствие css-селектору
<div class="someParentClass">
<div id="myElem" class="someChildClass"></div>
</div>
matches «умеет», например, такое:
myElem.matches('div.someParentClass .someChildClass') //true
myElem.matches('span.someParentClass .someChildClass') //false
+2
Атрибутом hidden активно пользуюсь и очень советую, с css никаких проблем: [hidden] { display: none !important }
Hidden значит спрятан, и это все что стоит добавить в css.
И чтобы показать элемент: hidden = false vs style.display = '...block? flex? Пойду в css посмотрю'
+1
Ок, а где малоизвестные свойства и методы?
+14
без танцев с бубном поддерживается только хромом, сомнительная полезность.
0
Забыли написать, что
равносильно
Как же так? =)
var v = document.getElementById('MyId');
равносильно
var v = MyId;
Как же так? =)
-1
Для меня пожалуй «открытием» было: scrollIntoView
А то постоянно офсеты считал :(
А то постоянно офсеты считал :(
+2
Циклы for() — это вчерашний день
Вчерашний день — это forEach
. А for
— это снова сегодняшний день:
for (el of document.querySelectorAll('a')) {
console.log(el.href);
}
0
конструкция myElement.querySelector('.my-class') выберет лишь те элементы, которые имеют класс my-class и при этом являются потомками элемента myElement
Данная конструкция выберет лишь первый элемент, удовлетворяющий селектору
+1
Sign up to leave a comment.
15 малоизвестных свойств и методов объектов DOM