#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))