Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   поиск класса с нужным текстом. В один проход. (https://javascript.ru/forum/misc/65919-poisk-klassa-s-nuzhnym-tekstom-v-odin-prokhod.html)

SanteR 15.11.2016 21:42

Рони,
Спасибо утром уже посмотрю результат. На вид вроде понятно.
А то уже с телефона сижу .

Coriolan161 15.11.2016 21:47

SanteR,
Не надо .end. Пардон
<input type="text" id="model">
<div class="hero-grid">
  <a href="">aaa</a>
  <a href="">bbb</a>
  <a href="">ccc</a>
  <a href="">ddd</a>
  <a href="">eee</a>
  <a href="">fff</a>
  <a href="">ggg</a>
  <a href="">hhh</a>
  <a href="">iii</a>
  <a href="">nnn</a>
  <a href="">abc</a>
</div>

$('#model').on('input', function() {
  var $this = $(this);
  $('.hero-grid a')
 .css('opacity', '1')
    .not(':contains('+$this.val().toLowerCase()+')')
    .css('opacity', '0.1')
});

Либо как рони предлагает

SanteR 16.11.2016 09:49

Метод Coriolan161 по быстрее вроде работает, спасибо.
В методе рони основная функция выполняется единожды, а вот этот код
a.css("opacity", function() {
            return this.textContent.toLowerCase().indexOf(text) > -1 ? 1 : .1

выполняется каждый раз и среднее время 22ms. Если я правильно замерял время для вложенных функций в методе рони :-?
Спасибо вам!

рони 16.11.2016 10:11

SanteR,
в моём решении меньше циклов чем у
Coriolan161, теоретически должно работать быстрее :) но в данном случае думаю разница не существенна.

рони 16.11.2016 10:21

SanteR,
https://jsfiddle.net/myef39d4/7/
https://jsfiddle.net/myef39d4/8/

SanteR 16.11.2016 11:07

рони,
Я у себя проверил на 120 ссылках.
Вот для наглядности можете глянуть тут 112 ссылок что ли. Разница приличная.
https://jsfiddle.net/SanteR1/myef39d4/9/
https://jsfiddle.net/SanteR1/myef39d4/10/

Может такая разница из за метода .indexOf в отличии от :contains :write:

рони 16.11.2016 11:39

SanteR,
да с css("opacity", function ) получается медленнее, можно без jquery попробовать

рони 16.11.2016 11:48

SanteR,
вариант без jquery
https://jsfiddle.net/myef39d4/11/

SanteR 16.11.2016 11:53

рони,
Я вообще новичок в jquery.
Этот вариант самый быстрый)) :dance:

Спасибо еще раз всем!


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