Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удаление классов с высокой производительностью (https://javascript.ru/forum/misc/67453-udalenie-klassov-s-vysokojj-proizvoditelnostyu.html)

arkadii_parovozov 18.02.2017 13:22

Удаление классов с высокой производительностью
 
Всем привет!

Возник такой вопрос: что менее затратное (в плане производительности, скорости работы скрипта) сбросить все классы по классу группы элементов используя эту функцию:
$(".class1").removeClass("class2");

или циклом проверять у каких элементов присутствует этот класс (class2) и уже у них удалять его?

Или это по сути одно и тоже...

рони 18.02.2017 13:47

Цитата:

Сообщение от arkadii_parovozov
Или это по сути одно и тоже...

да
только в том и другом случае цикл будет только для удаления, для выборки по классу цикл не нужен

Alexandroppolus 18.02.2017 13:58

$('.class1.class2').removeClass('class2');

arkadii_parovozov 18.02.2017 14:08

Цитата:

Сообщение от Alexandroppolus (Сообщение 444631)
$('.class1.class2').removeClass('class2');

Или
$(".class1").removeClass("class2");

Или
$('.class2') .each(function(){
		 $(this).removeClass("class2");
	});

Что из этого будет выполняться быстрее всего, и почему?

arkadii_parovozov 18.02.2017 14:40

Цитата:

Сообщение от Rise (Сообщение 444637)
arkadii_parovozov, почему условия разные?

Но результат-то один.
При этих условий удаляется класс "class2". В этом-то и смысл создания этой темы, чтобы узнать какой метод самый производительный и почему...

arkadii_parovozov 18.02.2017 15:15

Согласен, тогда он ищет только класс class2. А если выбрать из этих трех функций:
$('.class1.class2').removeClass('class2');

$(".class1").removeClass("class2");

$('.class1') .each(function(){
         $(this).removeClass("class2");
});

Malleys 18.02.2017 15:28

https://jsfiddle.net/292ehxbb/6/

arkadii_parovozov 18.02.2017 16:05

Спасибо за наглядный пример!!! Всем плюсы! )


Часовой пояс GMT +3, время: 11:14.