Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   какой по счёту li (https://javascript.ru/forum/jquery/13025-kakojj-po-schjotu-li.html)

vanderv 13.11.2010 06:23

какой по счёту li
 
Когда обращаюсь к элементу делаю так:
$("body").find("ul#list li").eq(n);
А вот как узнать какой n при $("body").find("ul#list li.now")
ТОбеж мне надо узнать какой элемент(номер) имеет класс now.

exec 13.11.2010 06:29

var object = $("body").find("ul#list li")[n];
$("body").find("ul#list li.now").each(function (i) {
	if (this == object)
		alert(i);
});

vanderv 13.11.2010 06:39

заранее не известно под каким n находится класс now

monolithed 13.11.2010 08:07

<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>

micscr 13.11.2010 08:33

var $now = $("body").find("ul#list li.now");
var $all = $("body").find("ul#list li");
alert($all.index($now));

- сам принцип

vanderv 13.11.2010 21:41

<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.

abc_ua 13.11.2010 22:21

var c = 0;
$("body").find("ul#list li").each(function () {
	if (this.className == "now")
		alert(c);
	c++;
});

monolithed 14.11.2010 00:09

Цитата:

Сообщение от vanderv
Понимаете? Вы мне дали функции которое вообще ищут общее количество li c классом now.

Не пишите бред, я вам привел код, который при клике на элемент с классом "now" показывает его порядковый номер.

vanderv 14.11.2010 01:13

Цитата:

Сообщение от monolithed (Сообщение 79108)
Не пишите бред, я вам привел код, который при клике на элемент с классом "now" показывает его порядковый номер.

Уверены? запустите свой скрипт и нажмите.
<ul>
<li>li</li>
<li class="now">now</li>
</ul>
вот тут он выводит 0, а должен 1.

monolithed 14.11.2010 01:24

Цитата:

Сообщение от vanderv
вот тут он выводит 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>


Часовой пояс GMT +3, время: 11:38.