Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   скрыть классы по маске (https://javascript.ru/forum/misc/70358-skryt-klassy-po-maske.html)

kot_k_k 30.08.2017 14:50

скрыть классы по маске
 
Всем, всего и много!

есть классы Иванов, Петров, Сидоров

хочу при вводе в инпут букавок "ров" скрыть Иванов.

т.е. убрать классы не соответствующие маске ввода.

понимаю что надо типа этого

$('tr[class*="'+маска+'"]').hide();

но как сделать отрицание ?

Nexus 30.08.2017 14:53

kot_k_k,
$('tr:not([class*="'+маска+'"])').hide();

j0hnik 30.08.2017 14:56

или же по умолчанию скрыты:
а показать
$('tr[class*="'+маска+'"]').show();

kot_k_k 30.08.2017 15:03

увы
$('tr:not([class*="'+маска+'"])').hide();
скрывает все абсолютно.
show - не подходит - т.к. все и так видно.
надо скрыть .

kot_k_k 30.08.2017 15:04

я понимаю что можно получить ссе класы перебрать и скрыть - но как то хочется красиво. и нутром чую что можно. но доказать не могу:)

Nexus 30.08.2017 15:08

kot_k_k,
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div class="petrov">Петров</div>
<div class="ivanov">Иванов</div>
<div class="sidorov">Сидоров</div>
<div class="janbekov">Жанбеков</div>
<input type="text" id="input" value="rov"/>
<script>
	$(function(){
		$('#input').on('input change blur click',function(){
			$('div').fadeTo(0,1);
			$('div:not([class*="'+$(this).val()+'"])').fadeTo(0,.3);
		}).click();
	});
</script>

j0hnik 30.08.2017 15:19

Цитата:

Сообщение от kot_k_k (Сообщение 463118)
увы
$('tr:not([class*="'+маска+'"])').hide();
скрывает все абсолютно.
show - не подходит - т.к. все и так видно.
надо скрыть .

так скрыть надо начально, я же написал

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div class="petrov">Петров</div>
<div class="ivanov">Иванов</div>
<div class="sidorov">Сидоров</div>
<div class="janbekov">Жанбеков</div>
<input type="text" id="input" value="rov"/>
<script>
	$(function(){
		$('#input').on('input change blur click',function(){
			$('div').fadeTo(0,.3);
			$('div[class*="'+$(this).val()+'"]').fadeTo(0,1);
		}).click();
	});
</script>


а там сами думайте, как удобней.

Nexus. ваш пример за основу взял, надеюсь вы не против

рони 30.08.2017 15:23

:) :write:
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div class="petrov">Петров</div>
<div class="ivanov">Иванов</div>
<div class="sidorov">Сидоров</div>
<div class="janbekov">Жанбеков</div>
<input type="text" id="input" value="rov"/>
<script>
  $(function(){
    $('#input').on('input change blur click',function(){
      $('div')
      .hide()
      .filter('[class*="'+this.value+'"]')
      .show();
    });
  });
</script>

Nexus 30.08.2017 15:32

Цитата:

Сообщение от j0hnik
Nexus. ваш пример за основу взял, надеюсь вы не против

Ждите повестку в суд :)

kot_k_k 30.08.2017 15:35

я взял не то событие и оно честно все скрывало.
взял onkeypress а надо было onkeyup.

всем спасибо.


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