jQuery исключает ad при чтении строк в

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть таблица или строки, и каждая строка имеет data-id значение. Таблица поддается сортировке. Мне нужно получить список значений идентификаторов данных в правильном порядке, в котором находится таблица, и вернуть их моему контроллеру, чтобы повторно назначить приоритет элементов.

Итак, я попытался создать функцию, которая перебирает каждую строку и создает строку, разделенную запятыми.

  function GetOrder()
    {
        var ordered;
        $("#debt_list tr").each(function () {
            var id = $(this).data("id");
            if(id != 'NaN')
                ordered = ordered   id   ',';
        });
        var result = ordered.replace(/(^,)|(,$)/g, "");
        return resu<
    }
 

Проблема, с которой я сталкиваюсь, заключается в том, что, во-первых, мой первый элемент, когда я «предупреждаю» результат, — это «NaN». Итак, мой результат выглядит так:

«NaN,12,7,2,1»

Я думаю, это потому, что он читает строку заголовка, в которой нет идентификатора данных. Вероятно, из-за $("#debt_list tr") строки.

Могу ли я запретить ему читать заголовок? Или, может быть, мне нужно назначить класс для каждой строки? Плохим решением может быть добавление data-id=0 в заголовок и игнорирование этого?

И я совсем новичок в jquery — подходит ли этот код для того, что я пытаюсь сделать?

Ответ №1:

Вы также можете сделать следующее, чтобы исключить заголовок и получить доступ только к строкам tbody с помощью $(«#debt_list tbody tr»), и в вашем коде есть еще одна ошибка: вы ничего не определили для переменной ordered и пытаетесь получить к ней доступ, из-за этого она возвращает NAN

  function GetOrder()
    {
        var ordered="";
        $("#debt_list tbody tr").each(function () {
            var id = $(this).data("id");
         
            if(id != 'NaN')
                ordered = ordered   id   ',';
        });
   
        var result = ordered.replace(/(^,)|(,$)/g, "");
       
    } 

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

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

1. @craig … дайте нам знать, сработало ли это и что заставило его работать

2. Это было прекрасно и познавательно. Похоже, что $(….) может отфильтровываться до компонентов, которые вам действительно небезразличны, путем добавления классов. Кажется, это то же самое, что сказать «Где класс является debt_list , и является tbody, и является tr». Спасибо.

Ответ №2:

Чтобы исключить строку заголовка, измените свой селектор следующим образом: #debt_list tr:not(:first-child)

NaN — это не строка, измените свой тест с if(id != 'NaN') на if (!isNaN(id))