Как заставить trposition начинаться с 1 при циклическом просмотре таблицы

#jquery

#jquery

Вопрос:

при нажатии на кнопку отправки, как заставить start trposition начинаться с 1 прямо сейчас, после нажатия на submit она начинается с нуля, это мой код

 $(document).on('click', '.updatepacorder', function(event)
{
        var allpacs = [];
        $('#sort > tbody  > tr').each(function(i)
        {
                var pacid = $(this).attr('pac_id');
                var id = i 1;
                var pacjson = {
                        "pacid": pacid,
                        "trposition": i
                }
                allpacs.push(pacjson);
        });
        var requestdata = {
                "pac_details": allpacs,
        };
        var reqested_data = JSON.stringify(requestdata);
        console.log(reqested_data);
        event.stopImmediatePropagation();
        event.preventDefault();
        return false;
});
  

Это моя скрипка

http://jsfiddle.net/z74VH/10/

Не могли бы вы, пожалуйста, сообщить мне, как заставить tr начинаться с 1 .

Комментарии:

1. вы можете объявить var i = 0; вне каждой функции нет необходимости передавать ее в цикле, я думаю, именно так она начинается с 1

2. Ваш счетчик i всегда начинается с нуля. Если вы хотите начать с 1 , то используйте var pacjson = { "pacid": pacid, "trposition": id } .

3. В чем дело var id в любом случае? Вы его не используете. Возможно, вы просто хотели использовать id вместо i в объекте pacjson. Тогда все в порядке.

Ответ №1:

Вы можете использовать переменную, объявленную вне цикла, отличную от индекса цикла, или просто добавить i ; в качестве первого оператора в цикле. Или используйте id переменную, которая содержит увеличенное значение индекса цикла.

Ответ №2:

Если я правильно понимаю ваш вопрос, точка, в которой вы хотите начать с 1 вместо 0, является trposition членом pacjson объекта?

Если это так, то это довольно просто: просто напишите, trposition: i 1 а не trposition: i .

Ответ №3:

$.each всегда будет начинаться с 0 , потому что это индекс первого элемента в массиве. Если вы хотите начать с 1, вам нужно увеличить значение, i как вы уже делали var id = i 1 , и использовать id вместо i :

  $('#sort > tbody  > tr').each(function(i)
 {
      var pacid = $(this).attr('pac_id');
            var id = i 1;
            var pacjson = {
                    "pacid": pacid,
                    "trposition": id // <- here
            }
            allpacs.push(pacjson);
 });
  

Надеюсь, это поможет.

Комментарии:

1. я хочу включить все ittems