Выполнить .каждая функция после первой строки таблицы

#jquery #html

#jquery #HTML

Вопрос:

У меня есть следующий код

  $("#description tr").each(function(){
            var description;
            var chargecode;
            var amount=0;
  

……. код продолжается, но меня интересует выполнение каждой функции после первой строки. Моя первая строка таблицы имеет заголовки, поэтому мой код продолжает получать значения переменных null и так далее. Возможно ли это или я должен просто отделить строку заголовка как отдельную таблицу?
Вся помощь приветствуется

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

1. Не могли бы вы добавить class атрибут ко всем строкам, кроме первой строки, и использовать $("#description tr.class") ?

2. С точки зрения семантики вы должны поместить свою первую tr в a thead , а остальные в tbody , чтобы вы могли выбирать #description tbody tr .

3. @zzzBov Ваше решение, которое я предпочитаю

Ответ №1:

Параметром для each() обратного вызова является индекс. Вы могли бы использовать это или вы могли бы правильно определить свою таблицу с <thead> помощью and <tbody> , а затем использовать $("#description tbody tr")

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

1. В то время как другие решения должны работать, я думаю, что это наиболее «правильное» решение. Если ваша первая строка таблицы является заголовком, пометьте ее как таковую, а затем вы можете выбрать тело таблицы, используя теги вместо классов.

Ответ №2:

Вы можете использовать:

 $("#description tr:not(:first-child)")
  

Рабочий пример: http://jsfiddle.net/KntKA /

Есть еще один вариант $("tr:nth-child(n 2)") , но он читается не так хорошо.

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

1. Не сработало, как ожидалось. хотя спасибо. У меня есть несколько ячеек

Ответ №3:

Вы можете либо добавить класс в первую строку (или ко всем остальным) и отфильтровать его (посмотрите на не-селектор, или вы можете использовать индекс цикла (который является первым параметром), который увеличивается на каждой итерации, а затем просто пропустить первый (или выдобавьте свой собственный счетчик). Конечно, лучшим решением является:

 $("#description tr:not(:first-child)") 
  

Который использует как не-селектор, так и селектор первого дочернего элемента.
Вы также можете использовать селектор больше, чем:

 $("#description tr:gt(0)")
  

Так много вариантов….Я бы выбрал последнюю.

Ответ №4:

Попробуйте —

  $("#description tr:gt(0)").each(function(){
            var description;
            var chargecode;
            var amount=0;
  

tr:gt(0) Должны быть получены только строки с индексом in выше нуля, поэтому игнорируется первая строка.

Демонстрация http://jsfiddle.net/ipr101/rPMUh /

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

1. Я хотел бы отметить, что :gt(0) предполагается, что существует только одна таблица. Если у вас несколько таблиц, :gt(0) вы пропустите первый заголовок, но не остальные.

2. Это хороший момент. Учитывая, что селектор сначала выбирает таблицу по идентификатору, казалось разумным предположить, что в этом случае это будет только одна таблица.

3. У меня есть несколько таблиц, и по какой-то причине это сработало не так, как ожидалось

Ответ №5:

Использовать $("#description tr:gt(0)").each . Значение :gt(0) означает «чей индекс больше 0″, и оно будет фильтровать совпадающие элементы по их индексу, встречающемуся на странице. Смотрите Документы.