2012-06-19 4 views
2

Как я узнаю, как работает элемент? (с использованием Javascript или jQuery) Предположим, у меня есть один UL с несколькими LI внутри, как я узнаю, что LI нажал 4-й или 6-й?Каким образом этот элемент?

$('li').click(function(){ 
    nth = $(this).nth(); 
    alert(nth); 
}); 

ответ

6

Вы можете использовать .index JQuery для этого.

​$("li").click(function() { 
    var nth = $("ul li").index($(this)); 
    alert(nth); 
});​ 

Live example

+0

Преимущество этого ответа над ответами с использованием $ (this) .index() заключается в том, что он также работает правильно, если некоторые из дочерних элементов ul не являются элементами li. – Confusion

+0

@Confusion - Если бы у ul были прямые дети, которые не были элементами li, были бы ли они действительными элементами? https://developer.mozilla.org/en/HTML/Element/ul Я предполагаю, что это не меняет того факта, что некоторые браузеры будут рассматривать их в индексе в любом случае. –

+0

@KevinB - Я думал, что вам разрешено напрямую вносить списки, но кажется, что это было устарело, как описано в, например, http://stackoverflow.com/questions/5899337/proper-way-to-make-html-nested-list – Confusion

1

вы могли бы попробовать nth = $(this).prevAll().count() + 1

1

Вы можете использовать индексный метод:

var nth = $(this).index()+1; 
2
$('li').click(function(){ 
    alert($(this).index()); 
}); 
0

я что-то вроде

$('li').each(function (i) { 
    $(this).data("pos", i); 
}).click(function() { 
    var nth = $(this).data("pos"); 
    alert(nth); 
}); 

Неизменно, я в конечном итоге, нуждающихся в положение для других вещей, так что я спасти его.

Смежные вопросы