какой по счёту li
Когда обращаюсь к элементу делаю так:
$("body").find("ul#list li").eq(n); А вот как узнать какой n при $("body").find("ul#list li.now") ТОбеж мне надо узнать какой элемент(номер) имеет класс now. |
var object = $("body").find("ul#list li")[n]; $("body").find("ul#list li.now").each(function (i) { if (this == object) alert(i); }); |
заранее не известно под каким n находится класс now
|
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <ul> <li>li</li> <li class="now">now</li> </ul> <ul> <li>li</li> <li class="now">now</li> </ul> <script type="text/javascript"> $(function(){ $('li[class="now"]').each(function(i){ $(this).click(function(){ alert(i); }); }); }); </script> |
var $now = $("body").find("ul#list li.now"); var $all = $("body").find("ul#list li"); alert($all.index($now)); - сам принцип |
<ul>
<li></li> <li></li> <li></li> </ul> Вот три li. При обращении к ним $("body").find("ul#list li").eq(n), n может быть равно 0, 1, 2. А мне надо знать какой из этих li имеет класс now. Его номер, дабы потом к нему можно обратиться. Понимаете? Вы мне дали функции которое вообще ищут общее количество li c классом now. |
var c = 0; $("body").find("ul#list li").each(function () { if (this.className == "now") alert(c); c++; }); |
Цитата:
|
Цитата:
<ul> <li>li</li> <li class="now">now</li> </ul> вот тут он выводит 0, а должен 1. |
Цитата:
Порядковый номер элемента соответствует его индексу, а значение первого индекса по-умолчанию - 0. В следующий раз конкретней формулируйте задачу! <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <ul> <li>li</li> <li class="now">now</li> </ul> <ul> <li>li</li> <li class="now">now</li> </ul> <script type="text/javascript"> $(function(){ $('li[class="now"]').each(function(i){ $(this).click(function(){ *!* alert(++i); */!* }); }); }); </script> |
Цитата:
Есть некий список <ul> <li></li> <li></li> <li></li> ...... <li></li> </ul> Возьмём на примере вашу функцию. Так вот, если у нас будет так: <ul> <li></li> <li class="now"></li> <li></li> ...... <li></li> </ul> То при нажатии alert должен быть 1, если так: <ul> <li></li> <li></li> <li class="now"></li> ...... <li></li> </ul> то 2... и тд. Ваша же функция делает общий поиск... По крайне мере первый вариант. 2-ой я пока не могу понять что дает. Что значит общий? Это если у на с будет вот так: <ul> <li></li> <li class="now"></li> <li></li> </ul> <ul> <li></li> <li class="now"></li> <li></li> </ul> <ul> <li></li> <li class="now"></li> <li></li> </ul> то при нажатии на первый ul li[class=now] alert выдаст 0, на второй нажимаешь выдает 1 и последний выдаст 2... А мне надо что бы во всех трёх случаях ваша функция выдавала 1. Тепепь понимаете что мне нужно? |
Цитата:
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <ul> <li>li</li> <li class="now">now</li> </ul> <ul> <li>li</li> <li class="now">now</li> </ul> <script type="text/javascript"> $(function(){ $('li[class="now"]').each(function(){ $(this).click(function(){ alert(1); }); }); }); </script> |
Цитата:
|
vanderv,
<ul> <li >li</li> <li class="now">now</li> <li class="now">now</li> <li >li</li> </ul> <ul> <li>li</li> <li class="now">now</li> </ul> <script type="text/javascript"> for (var u = document.getElementsByTagName("ul"), i = 0; i < u.length; i++) { l = u[i].getElementsByTagName("li"); for (var k = 0; k < l.length; k++) if (l[k].className == "now") l[k].onclick = function (a) { return function () { alert(a) } }(k) }; </script> |
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <ul> <li>li0</li> <li>li1</li> <li class="now">now2</li> </ul> <hr> <ul> <li>li0</li> <li>li1</li> <li>li2</li> <li class="now">now3</li> </ul> <script type="text/javascript"> $(function(){ $('ul').click(function(){ var $this = $(this); var $lis = $this.find('li'); var $li1 = $this.find('li.now'); var ind = $lis.index($li1); alert(ind); }); }); </script> |
ещё вариант ))) порядковый номер элемента с заданным классом относительно родителя
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <ul> <li>li</li> <li class="now">now</li> </ul> <ul> <li>li</li> <li class="now">now</li> <li>li</li> <li class="now">now</li> </ul> <ul> <li class="now">now</li> <li>li</li> <li class="now">now</li> <li>li</li> <li class="now">now</li> </ul> <script type="text/javascript"> $(function () { $("li.now").click(function () { alert($(this).index()) }) }) </script> |
Часовой пояс GMT +3, время: 14:42. |