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

vanderv 14.11.2010 01:46

Цитата:

Сообщение от monolithed (Сообщение 79128)
Не должен.
Порядковый номер элемента соответствует его индексу, а значение первого индекса по-умолчанию - 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. Тепепь понимаете что мне нужно?

monolithed 14.11.2010 01:57

Цитата:

Сообщение от vanderv
А мне надо что бы во всех трёх случаях ваша функция выдавала 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 14.11.2010 03:04

Цитата:

Сообщение от monolithed (Сообщение 79137)
<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>

Вы издеваетесь? Читайте внимательнее что требуется.

рони 14.11.2010 03:57

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>

micscr 14.11.2010 11:26

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

рони 14.11.2010 21:26

ещё вариант ))) порядковый номер элемента с заданным классом относительно родителя
<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, время: 09:18.