Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2012, 11:19
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

Найти количество элементов списка
Нужно найти числовое количество элементов LI в списке. Помогите пожалуйста.

<ul class="list">
<li><a href="#">Главная</li>
<li><a href="#">Главная</li>
<li><a href="#">Главная</li>
<li><a href="#">Главная</li>
<li><a href="#">Главная</li>
<li><a href="#">Главная</li>
</ul>
Ответить с цитированием
  #2 (permalink)  
Старый 27.05.2012, 11:29
Интересующийся
Отправить личное сообщение для an.semionov Посмотреть профиль Найти все сообщения от an.semionov
 
Регистрация: 11.05.2011
Сообщений: 13

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="http://yandex.st/jquery/1.7.2/jquery.js"></script>
    <script type="text/javascript">
		$(function(){
			var countLi = $('ul.list li').size();
			alert(countLi);
		});		
    </script>
</head>
<body>
    <ul class="list">
			<li><a href="#">Главная</li>
			<li><a href="#">Главная</li>
			<li><a href="#">Главная</li>
			<li><a href="#">Главная</li>
			<li><a href="#">Главная</li>
			<li><a href="#">Главная</li>
	</ul>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2012, 11:30
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

an.semionov,
Спасибо большое )
Ответить с цитированием
  #4 (permalink)  
Старый 18.07.2014, 13:50
Интересующийся
Отправить личное сообщение для SpiritAbsolute Посмотреть профиль Найти все сообщения от SpiritAbsolute
 
Регистрация: 11.12.2013
Сообщений: 19

Получить количество это пол дела! А как работать с какой нибудь лишкой этого списка, указав ее позицию в этом количестве? Например, тут общее количество 6 LI, как мне в li номер 3 вставить какой нибудь класс, или id. В общем начать работать с любым элементом по его позиции.
Ответить с цитированием
  #5 (permalink)  
Старый 18.07.2014, 14:18
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от SpiritAbsolute
А как работать с какой нибудь лишкой этого списка, указав ее позицию в этом количестве?
Нахер лишку. Научись работать с документацией и гуглом.
Ввёл в гугл "получить элемент jquery". Первым выдало ссылку на документацию, вторым - на статью с сайта.
Ответить с цитированием
  #6 (permalink)  
Старый 18.07.2014, 14:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

SpiritAbsolute,
http://api.jquery.com/eq/
Ответить с цитированием
  #7 (permalink)  
Старый 18.07.2014, 14:24
Интересующийся
Отправить личное сообщение для SpiritAbsolute Посмотреть профиль Найти все сообщения от SpiritAbsolute
 
Регистрация: 11.12.2013
Сообщений: 19

ага вот про eq() тоже нашел, сделал так
for (var i=1; i<$('#tg-menu > li').size(); i++){
			if($('#tg-menu > li:eq('+i+')').prop('class')=='ui-menu-item ui-state-focus'){
				var position = i;
			}
		}
		console.log(position);
Ответить с цитированием
  #8 (permalink)  
Старый 18.07.2014, 14:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

SpiritAbsolute,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
</head>

<body>
<ul id="tg-menu">
  <li></li>
  <li></li>
  <li class="ui-menu-item ui-state-focus"></li>
</ul>
<script>
 var i = $('#tg-menu > li').index($('li.ui-menu-item.ui-state-focus')) ;
 alert(i)
</script>
</body>

</html>
Ответить с цитированием
  #9 (permalink)  
Старый 18.07.2014, 14:50
Интересующийся
Отправить личное сообщение для SpiritAbsolute Посмотреть профиль Найти все сообщения от SpiritAbsolute
 
Регистрация: 11.12.2013
Сообщений: 19

Да, ништяк! спасибо, еще лучше вариант
Ответить с цитированием
  #10 (permalink)  
Старый 18.07.2014, 15:10
Интересующийся
Отправить личное сообщение для SpiritAbsolute Посмотреть профиль Найти все сообщения от SpiritAbsolute
 
Регистрация: 11.12.2013
Сообщений: 19

В итоге в общем получилось так.
Стояла задача, отслеживать изменения select , который стилизован с помощью jquery ui.
Получалось так, jquery ui генерировал свою структуру span, ul, li - не трогая <select>(просто скрывая его через display:none
В результате, не возможно было отследить изменение select`a и получить его значение, для дальнейших действий.
/*
#tg - ID <select>, в котором нужно отследить изменения
#tg-menu - ID <ul>, который Jquery UI присваивает после формирования ul списка с значениями <select>
*/
// Отслеживаем клик по элементу(LI), который формирует Jquery UI после клика на span, которым он заменяет select
$('body').on('click', '.ui-menu-item', function() {
	// Определяем позицию выбранного элемента(LI), по классу 'ui-state-focus', с помощью index()
	var position=$('#tg-menu > li').index($('li.ui-state-focus'));
	// Получив позицию, узнаем в какой позиции находится нужный, для изменения, <option> и делаем его выбранным.
	for (var i=1; i<$('#tg > option').size(); i++){
		if(i==position){
			$('#tg > option:eq('+position+')').prop("selected", "selected");
		}
	}
	// Получаем значение выбранного <select>
	var tg = $('#tg').val();
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ограничить количество элементов (списков <li>) массивов Naum Элементы интерфейса 2 04.04.2011 11:56
Быстрый разбор списка элементов. B~Vladi Общие вопросы Javascript 31 14.07.2010 15:52
получить количество элементов в div woo Общие вопросы Javascript 4 06.06.2010 22:41
получить количество элементов... woo jQuery 1 06.06.2010 18:31
Выбор элементов и построение списка выбранных элементов. madgals Events/DOM/Window 6 14.04.2009 22:30