Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2011, 12:57
Новичок на форуме
Отправить личное сообщение для txop Посмотреть профиль Найти все сообщения от txop
 
Регистрация: 24.12.2010
Сообщений: 3

Как скрыть ненужные элементы чекбоксом ?
Есть список элементов:

<li><div class="on">test1</div></li>
<li><div class="off">test2</div></li>
<li><div class="on">test1</div></li>
<li><div class="on">test1</div></li>
<li><div class="off">test1</div></li>


И есть checkbox.

- Хочу сделать так, чтобы при отмеченном чекбоксе или по клику по чекбоксу прятались элементы с классом "off".

- Состояние чекбокса запоминалось.

Сам Я в яваскриптах не очень. Может кто-то подсказать на чем лучше всего это реализовать (JS, Ajax, JQuerry) и как сделать запоминание чекбокса ? И в какую сторону копать...и если не трудно хоть приблизительно накидать основу скрипта .
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2011, 13:11
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

<ul id="elems">
<li class="on">Test 1</li>
<li class="off">Test 2</li>
<li class="on">Test 3</li>
<li class="off">Test 4</li>
<li class="on">Test 5</li>
</ul>
<input type="checkbox" onclick="change(this)" /> спрятать
<script>
function change(obj) {
    var elems = document.getElementById('elems').getElementsByTagName('li');
    for(i=0;i<elems.length;i++) {
      if (elems[i].className == 'off') {
         if (obj.checked)
            elems[i].style.display = 'none';
         else
            elems[i].style.display = 'list-item';
      }
   }
}
</script>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2011, 13:19
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

http://jsfiddle.net/mh9YA/

или тут, оно же

скрой, нажми на F5, посмотри снова

<style>li {list-style:none}</style>
<li><div class="on">test1</div></li>
<li><div class="off">test2</div></li>
<li><div class="on">test1</div></li>
<li><div class="on">test1</div></li>
<li><div class="off">test1</div></li>
<br>
<input type="checkbox" value="3k"> чекай.

<script src="http://yandex.st/jquery/1.6.1/jquery.min.js"></script>
<script>
    var checkbox=$( 'input[type=checkbox]' );
    
    if( sessionStorage[ 'hided' ] == 'ok' ){  $("div.off").hide();checkbox[0].checked=true }
        
    checkbox.click( function(){

        if(  this.checked ){
            sessionStorage[ 'hided' ]='ok'
            $("div.off").fadeOut('slow');
        } else {
            sessionStorage[ 'hided' ]='no'
            $("div.off").fadeIn('slow');
        }
    
})
</script>

Последний раз редактировалось melky, 29.06.2011 в 13:22.
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2011, 13:47
Новичок на форуме
Отправить личное сообщение для txop Посмотреть профиль Найти все сообщения от txop
 
Регистрация: 24.12.2010
Сообщений: 3

Очень помогло! Всем спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 30.08.2017, 16:46
Новичок на форуме
Отправить личное сообщение для ИринаR Посмотреть профиль Найти все сообщения от ИринаR
 
Регистрация: 30.08.2017
Сообщений: 2

вопрос по дополнению к теме
Здравствуйте. Подскажите, как div с id привязать к input.
У меня 6 инпутов. И кликнув на чекбокс чтобы сработала такая функция, о которой вы писали ранее. И чтобы строчки не скрывались, а наоборот добавлялись, как бы скрытый блок изначально
(style="display: none;")

Заранее спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 30.08.2017, 16:47
Новичок на форуме
Отправить личное сообщение для ИринаR Посмотреть профиль Найти все сообщения от ИринаR
 
Регистрация: 30.08.2017
Сообщений: 2

walik,
не могли бы вы мне помочь?
Ответить с цитированием
  #7 (permalink)  
Старый 30.08.2017, 19:44
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<style>
		div{
			display: none;
		}
	</style>
</head>
<body>
		<div>тест1</div><input type="checkbox"><br>
		<div>тест2</div><input type="checkbox"><br>
		<div>тест3</div><input type="checkbox"><br>
		<div>тест4</div><input type="checkbox"><br>
		<div>тест5</div><input type="checkbox"><br>
		<div>тест6</div><input type="checkbox"><br>
	<script>
	[].forEach.call(document.querySelectorAll('input[type="checkbox"]'), function(el){
		el.onchange=function(){
			el.previousElementSibling.style.display = el.previousElementSibling.style.display === 'block'?'none':'block';
	};
});
	</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 30.08.2017, 20:04
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Если именно по ID то такой вариант
<html>
<head>
	<style>
		div{
			display: none;
		}
	</style>
</head>
<body>
		<div id="cl1">тест1</div><input type="checkbox" class="cl1"><br>
		<div id="cl2">тест2</div><input type="checkbox" class="cl2"><br>
		<div id="cl3">тест3</div><input type="checkbox" class="cl3"><br>
		<div id="cl4">тест4</div><input type="checkbox" class="cl4"><br>
		<div id="cl5">тест5</div><input type="checkbox" class="cl5"><br>
		<div id="cl6">тест6</div><input type="checkbox" class="cl6"><br>
	<script>
	[].forEach.call(document.querySelectorAll('input[type="checkbox"]'), function(el){
		el.onchange=function(){
			var div = document.querySelector('div#'+el.className);
			div.style.display=el.checked?'block':'none';
	};
});
	</script>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 30.08.2017, 20:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

j0hnik,
может поменять input и div и без js сделать?
Ответить с цитированием
  #10 (permalink)  
Старый 30.08.2017, 20:09
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
может поменять input и div и без js сделать?
х.з какая там вложенность будет
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как скрыть обработчик HTML-формы с помошью JavaScript? Мишаня Общие вопросы Javascript 5 15.06.2009 05:40
как найти нужный объект? `p r o x y jQuery 2 05.05.2009 01:12
Как поменять местами элементы в дереве элемента родителя? rar11 Events/DOM/Window 8 01.04.2009 18:53
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03