Здравствуйте! Сегодня: Вс, 15 Сен 2019, Ваш IP: 34.236.170.48 Войти через loginza
 
Вход | Регистрация | Забыли пароль?
Мой Kbyte.Ru
> Список форумов Kbyte.Ru - - Web-программирование
+ Создать новую тему Страница: 1
Тема: Jquery и select · +  +  дата добавления: 21.01.2012 / 17:57
Автор темы:
poisk_ya
poisk_ya
тем: 2 / ответов: 7 / благодарностей: 0 / репутация: 0
ответов: 7
создал(а) тем: 2


Доброго времени суток.

Подскажите как с помощью скрипта собрать информацию в выпадающую шторку select name все значения имён?
HTML код страницы менять нельзя, только script

  <script>
 $(document).ready(function(){	
	$('table').before('<select name="name">')
 });
 </script>

</head>
<body>
	<table>
		<tr>
			<td>Вася</td>
		</tr>
		<tr>
			<td>Петя</td>
		</tr>
		<tr>
			<td>Витя</td>
		</tr>
		<tr>
			<td>Саша</td>
		</tr>
		<tr>
			<td>Маша</td>
		</tr>
		<tr>
			<td>Даша</td>
		</tr>
		<tr>
			<td>Глаша</td>
		</tr>
		<tr>
			<td>Винни</td>
		</tr>
		<tr>
			<td>Торчёк</td>
		</tr>
 </table>
Технологии: JavaScript, jQuery
 
Ответ # 1 # · +x1 +  дата добавления: 21.01.2012 / 18:22
Автор ответа:
Алексей Немиро
Алексей Немиро
тем: 534 / ответов: 5130 / благодарностей: 325 / репутация: 211
Чашка Kbyte.Ru>>
Url: aleksey.nemiro.ru
Icq: 261779681
Skype: alekseynemiro
ответов: 5130
создал(а) тем: 534


<script>
 $(document).ready(function(){	
  $('table').before('<select name="name" id="name"></select>');
  $("td").each(function () {
    $("#name").append("<option>" + $(this).text() + "</option>");
  });
 });
</script>
 
Ответ # 2 # · +  +  дата добавления: 21.01.2012 / 18:29
Автор ответа:
poisk_ya
poisk_ya
тем: 2 / ответов: 7 / благодарностей: 0 / репутация: 0
ответов: 7
создал(а) тем: 2


Спасибо, то что надо
ресурс у вас хороший
 
Ответ # 3 # · +  +  дата добавления: 21.01.2012 / 19:59
Автор ответа:
poisk_ya
poisk_ya
тем: 2 / ответов: 7 / благодарностей: 0 / репутация: 0
ответов: 7
создал(а) тем: 2


Ещё один нюанс,
как при выборе определённого имени(имён) и при клике чекбокса рядом с select ставились чекбоксы и рядом с именами?
Примерон я накидал как оно должно быть, там где я написал что я не могу понять как дальше

И ещё, я добавил в Html повторяющиеся имена, как сделать что бы в selectе не было повторений? см.скрин

<script>
 $(document).ready(function(){	
 $('table').before('<select name="name" id="name"></select>').before('<input type="checkbox" id="chb">');
 $("td").each(function () {
 $("#name").append("<option>" + $(this).text() + "</option>");
 });
 // checkbox
 $("#chb").click( function() { 
		if($('#chb').attr('checked')){ 
			$(что).prev('input:checkbox').attr('checked', true);
		} else {
			$(что).prev('input:checkbox').attr('checked', false);
		}
   });
 });
</script>

</head>
<body>
	<table>
		<tr>
			<td><input type='checkbox'> Винни</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Вася</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Петя</td>
		</tr>
				<tr>
			<td><input type='checkbox'> Даша</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Витя</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Саша</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Маша</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Даша</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Глаша</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Винни</td>
		</tr>
		<tr>
			<td><input type='checkbox'> Торчёк</td>
		</tr>
 </table>

 
Ответ # 4 # · +x1 +  дата добавления: 21.01.2012 / 20:57
Автор ответа:
Алексей Немиро
Алексей Немиро
тем: 534 / ответов: 5130 / благодарностей: 325 / репутация: 211
Чашка Kbyte.Ru>>
Url: aleksey.nemiro.ru
Icq: 261779681
Skype: alekseynemiro
ответов: 5130
создал(а) тем: 534


Можно примерно так:
<script>
 $(document).ready(function(){	
 $('table').before('<select name="name" id="name"></select>').before('<input type="checkbox" id="chb">');

 // получение всех имен из таблицы
 $("td").each(function () {
   // если имени нет в списке, 
   if($("#name option[value='" + $(this).text() + "']").text() == "")
   { // то добавляем
     $("#name").append("<option value='" + $(this).text() + "'>" + $(this).text() + "</option>");
   }
 });

 // checkbox
 $("#chb").click( function() { 
   // нужно найти элемент в таблице
   var selText = $("#name :selected").text(); // имя
   $("td:contains('" + selText +"')").each(function () { //поиск ячеек, содержащих указанное имя
     if($('#chb').attr('checked')){
       $(this).children("input").attr('checked', true);
     } else {
       $(this).children("input").attr('checked', false);
     }
   });
  });
 });

  // select
  $("#name").live("change", function() { 
   // нужно найти элемент в таблице
   var selText = $("#name :selected").text();
   $("td:contains('" + selText +"')").each(function () { //поиск ячеек, содержащих указанное имя
     if($(this).children("input").attr('checked')){
       $('#chb').attr('checked', true);
     } else {
       $('#chb').attr('checked', false);
     }
   });
  });
</script>
 
Ответ # 5 # · +  +  дата добавления: 21.01.2012 / 22:25
Автор ответа:
poisk_ya
poisk_ya
тем: 2 / ответов: 7 / благодарностей: 0 / репутация: 0
ответов: 7
создал(а) тем: 2


Здорово
 
Страница: 1 + Создать новую тему