Подскажите способ узнать порядковый номер элемента в родителе
Нужно написать функцию узнающую порядковый номер элемента в контейнере. К примеру элемента "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, время: 12:48. |