Переберите tr с помощью Jquery и сравните содержимое со следующей строкой в ​​серии - PullRequest
0 голосов
/ 04 декабря 2009

Я немного новичок в jQuery / javascript и хотел бы сравнить содержимое row[i] в теле таблицы с row[i+1].

Это что-то, что я могу сделать с jQuery, или я должен просто использовать старый добрый JS и getElementByid, а затем зациклить? использование .each не дает возможности легко получить доступ к следующему элементу серии.

Я предполагаю, что если / когда я найду решение для этого, мне нужно выяснить, как сравнить row[i].td[j] с row[i+1].td[j].

Я полагаю, это просто, но мои поиски до сих пор не дали результата.

Ответы [ 3 ]

4 голосов
/ 04 декабря 2009

обратите внимание, что next может оказаться пустым объектом jquery, если вы набрали последний tr

var trs = $('tr');
trs.each(function(i,n) {
    var current = $(n);
    var next = trs.eq(i+1);
});
1 голос
/ 04 декабря 2009

Вы можете сохранить предыдущий элемент и выполнить сравнение на следующем:

        var callback = (function() {
            var lastTr;

            return (function(i, n) {
                if (lastTr) {
                    //logic $(this) is 'next', lastTr is 'current'
                }

                lastTr = $(this);
            });
        })();;

        $(document).ready(function() {
            $('tr').each(callback); 
        });
0 голосов
/ 07 декабря 2009

мое полное решение до сих пор включает что-то вроде этого:

  function myfunc(table) {
    $(table).each(function(i,n) {
      var current = $(n);
      var next = $(table).eq(i+1);
      if (next.length) {
        current.children().each(function(a,b) {
          var current_td = $.trim($(b).text());
          var next_td = $.trim(next.children().eq(a).text());
          /* compare here */
        });
      }
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...