Подскажите способ узнать порядковый номер элемента в родителе
Нужно написать функцию узнающую порядковый номер элемента в контейнере. К примеру элемента "c", то есть функция должна вернуть 3
. <div id="container"> <div id="a"> </div> <div id="b"> </div> <div id="c"> </div> <div id="d"> </div> <div id="/container"> в голову приходит пока только такое решение. //target это элемент, номер которого мы должны узнать. Причём не id и не класс а именно элемент выбранныый где то //предварительно при помощи метода $("") function getNum(target){ var ret=0; target.parent().each(function(){ ret+=1; if (this==target) break; }); return ret; } Надо полагать работать будет. Может всёже, можно определить номер как нибудь без циклов ?? Сделать это как-то умнее. |
function getNum(el) { var i = 0; while (el = el.previousSibling) { el.nodeType == 1 && i++; } return i; }Как-то так, думаю, покатит. Здесь el - DOM элемент, поэтому если с jquery то как-то так getNum($collection[0]). Или переписать под jquery, использую .prev(), то же самое, просто работать будет чуть-чуть медленнее. |
$("#c").index() пример : <div id="container"> <div id="a"> </div> <div id="b"> </div> <div id="c"> </div> <div id="d"> </div> </div> <script src="http://yandex.st/jquery/1.6.3/jquery.min.js"></script> <script> alert($("#c").index()) </script> |
<div id="hello"> 7687 </div> <div id="container"> <div id="a"><div>тест </div> </div> <div id="b"><div>тест </div> </div> <div id="c"> </div> <div id="d"> </div> </div> <script src="http://yandex.st/jquery/1.6.3/jquery.min.js"></script> <script> alert($("#c").index()) </script> Да ! Походу это то что нужно. СПС, плюсую. |
Часовой пояс GMT +3, время: 17:00. |