Получение индекса li, который имеет класс и увеличивает - PullRequest
2 голосов
/ 12 октября 2010

Я был рядом с hasClass, is (), если тогда и т. Д.

Что я хотел бы сделать, это когда нажмете "btn", посмотрите список li, найдитетот, который имеет класс «on» и получает значение индекса.В зависимости от этого значения запустите функцию x, добавьте класс «on» к следующему li и удалите класс из текущего li.

Я хочу избежать выполнения сравнений для каждого значения индекса с цепочкой условных выражений if

Я думаю, что я только что смешал слишком много селекторов и методов.Любой код, который я публикую здесь, будет труднее прочитать, чем, возможно, этот вопрос!

Спасибо тем, кто может получить то, что я пытаюсь задать!

Ответы [ 2 ]

5 голосов
/ 12 октября 2010

Если вы используете jQuery 1.4+, вы можете использовать .index() без параметров, чтобы получить индекс элемента среди его братьев и сестер, например:

var i = $("li.on").index();

Вы можете использовать normalметоды обхода для остальных, например, перемещение класса вниз на один:

$("li.on").removeClass("on").next().addClass("on");
1 голос
/ 12 октября 2010

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

var current = $('ul.ulClass').find('li.on'); // select current on li
current.removeClass('on');                   // Remove on from current
current.next().addClass('on');               // Add on to next 

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...