Передача функции в метод jquery text ()

0

В этом коде:

$('li').text( function(i, text){ return (i+1)+ ". " + text; });

Я получаю номера для элементов списка в порядке от 1 до последнего элемента списка, и он работает хорошо. Но когда я использую i++ insted я + 1, числа начинаются с 0. Так что insted 1. для элемента списка 1 я получил 0 и так далее. Какой улов?

  • 0
    Потому что i++ != ++i
  • 0
    поддержание i+1 было бы хорошо, поскольку вы на самом деле не увеличиваете значение. Есть разница между увеличением и использованием его плюс 1.
Показать ещё 1 комментарий
Теги:

1 ответ

3
Лучший ответ

вам нужно использовать ++i, i++ - оператор post increment. Вам потребуется предварительный шаг, потому что вы хотите использовать увеличиваемое значение в текущей операции

  • 0
    Ну, спасибо, это было быстро.
  • 1
    Я помню, что слышал, как Дуглас Крокфорд защищал это правило в JSLint, которое предотвращает оператор ++, потому что люди неправильно понимают, как он работает. Казалось немного строгим, но я вижу, как это может сбить людей с толку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню