Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выделить, пере выделить нужные (https://javascript.ru/forum/misc/67315-vydelit-pere-vydelit-nuzhnye.html)

Маша_92 10.02.2017 12:03

Выделить, пере выделить нужные
 
Всем привет.

Не могу решить, пишу сюда, прошу помощи.

У меня есть 3 ссылки (1 ссылка, 2 ссылка, 3 ссылка)

<a href="#" class="view" value="1">1 ссылка</a>
<a href="#" class="view" value="4">2 ссылка</a>
<a href="#" class="view" value="8">3 ссылка</a>

Также у меня есть checkbox 8 штук
<input type="checkbox" name="1">
<input type="checkbox" name="2">
<input type="checkbox" name="3">
<input type="checkbox" name="4">
<input type="checkbox" name="5">
<input type="checkbox" name="6">
<input type="checkbox" name="7">
<input type="checkbox" name="8">

и есть мой любимый джиквери

$('.view').on('click',function()
{
	var num = $(this).attr('value');
	
	for(i = 1; i <= num; i++)
	{
		$(':checkbox[name='+i+']').attr('checked',true);	
	}
});

Что у меня сейчас

при нажатие на "1 ссылка" у меня выделяется "name="1"
при нажатие на "2 ссылка" у меня выделяется с "name="1" по "name="4"
при нажатие на "3 ссылка" у меня выделяется с "name="1" по "name="8"

У меня не получается сбрасывать checked
То есть когда я нажимаю на "3 ссылка" а потом на "1 ссылка" у меня остаются помеченные все checkbox
Понимаю что нужно как то снять все галочки перед новым click и тут же не понимаю ;)

После клика снимаю все галочки и хочу заново выделить другие checkbox. Цикл for уже не срабатывает

$('.view').on('click',function()
{
	$('input').attr('checked', false);//снимаю все галочки

	var num = $(this).attr('value');
	
	for(i = 1; i <= num; i++)//не срабатывает
	{
		$(':checkbox[name='+i+']').attr('checked',true);	
	}
});

Прошу помочь с данным вопросом.

Coriolan161 10.02.2017 12:21

Маша_92,
Может так?
var num = +$(this).attr('value');

рони 10.02.2017 12:24

Маша_92,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
$('.view').on('click',function(event)
{ event.preventDefault();
  var num = $(this).data('value');
  $('.check').prop('checked',false).slice(0, num).prop('checked',true);

});

});
  </script>
</head>

<body>

<a href="#" class="view" data-value="1">1 ссылка</a>
<a href="#" class="view" data-value="4">2 ссылка</a>
<a href="#" class="view" data-value="8">3 ссылка</a>
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">
<input type="checkbox" class="check">


</body>
</html>

Маша_92 10.02.2017 13:26

Coriolan161 немножко не то но все равно спасибо.
рони спасибо. Вот это slice(0, num) помогло.


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