какой по счёту 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, время: 09:06. |