JQuery Количество детей - PullRequest
2 голосов
/ 21 января 2011

У меня довольно простая проблема, и я пытаюсь найти лучший подход для ее реализации.

Для тех, кому интересно, это используется для очистки данных с нередактируемой страницы (можно добавить css, js, но остальная часть контента является закрытым исходным кодом и недоступна для редактирования)

Я перебираю элемент (например, tr) и хочу посмотреть только на случаи, когда присутствует определенное количество td элементов.

Например, для каждого tr я хочу рассмотреть только случай, когда у него есть 3 td детей

Каков наилучший способ сделать это?

1 Ответ

5 голосов
/ 21 января 2011

Вы можете попробовать что-то вроде этого:

var result = $('tr').filter( function(){
  return $(this).children('td').length === 3;
});

Затем вы можете делать любые виды очистки, какие захотите. Простой пример:

result.each( function(i,e){ // for each row
  // e = one of the selected rows
  $(e).children('td').each( function(i,e){ // for each td in the row
    your_scraping_function( e.text() ); // etc.
  });
});

Как указывает @patrick ниже, вы, конечно, можете связать процесс очистки непосредственно с выводом filter(), если это имеет смысл для вашего кода.

Редактировать: Добавлен селектор 'td' в children(). Пояс и подтяжки.

Редактировать: добавлен пример того, как просматривать результаты, согласно комментарию OP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...