Получить порядок divs в div

У меня есть список DIV - это контейнер DIV , аналогичный приведенному ниже.

  <div id="ChainLinkList">
  <div class="chainSelect" id="L2176">jj</div>
  <div class="chainSelect" id="L2171">suby 3</div>
  <div class="chainSelect" id="L2170">suby 2</div>
  <div class="chainSelect" id="L2167">submenu</div>
  </div>

Я бы хотел получить порядок определенного DIV при нажатии. Я попробовал следующее

   $(".chainSelect").live("click", function() {
   var index = $(this).parent().index(".chainSelect");
   alert(index);
   .....

также

   $(".chainSelect").live("click", function() {
   var index = $('#ChainLinkList').parent().index(".chainSelect");
   alert(index);
   .....

Но я просто, кажется, получаю -1

1

5 ответы

Вы можете просто вызвать $ (this) .index (); , чтобы получить индекс щелкнутого элемента внутри его родителя:

$(".chainSelect").live("click", function() {
   var index = $(this).index();
   alert(index);
});​

http://jsfiddle.net/5ShLs/

6
добавлено

Вы должны изменить

$(".chainSelect").live("click", function() {
   var index = $(this).parent().index(".chainSelect");
   alert(index);
});

для:

$(".chainSelect").live("click", function() {
   var index = $(".chainSelect").index(this);
   alert(index);
});​

скрипка

1
добавлено

вы можете попробовать это:

.live is deprecated so it is better to use .on() handler

 $(document).on("click", ".chainSelect", function(){
   var index = $(this).index();
   alert(index);
 });
1
добавлено
Хорошо! но не понял, почему e.target не является хорошим советом? стремятся узнать больше.
добавлено автор Jai, источник
спасибо jan Dvorak ответ обновлен. будет помнить об этом. еще раз спасибо.
добавлено автор Jai, источник
+1 для заметок live ; -1 как e.target не является хорошим советом, хотя, поскольку он имеет другое значение. (всего: 0 от меня)
добавлено автор John Dvorak, источник
e.target может возвращать дочерний элемент предполагаемого элемента; этот ребенок имеет совсем другое положение в его родительском, чем this . e.target не связан с связанным элементом или с делегированным элементом.
добавлено автор John Dvorak, источник
Рейтинг обновлен: +1 от меня, 0 от анонимного downvoter.
добавлено автор John Dvorak, источник

не нужно переходить к родительскому .. просто получите индекс вашего элемента clicked ..

Начиная с jQuery 1.7, метод .live() устарел.

$(".chainSelect").on("click", function() {
  var index = $(this).index();
  alert(index);
});​
0
добавлено

в первую очередь..

    $('#ChainLinkList').parent() 

в этом вы вызываете родительский элемент div chainlinklist, который здесь сам является родительским элементом divmnt div, который вам нужен .. поэтому это не будет для вас.
поэтому попробуйте это ..

    $(this).index(); 
0
добавлено
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing