Итерация над TR в столе с Cheerio.jsJquery

Программирование на jquery
Ответить
Anonymous
 Итерация над TR в столе с Cheerio.js

Сообщение Anonymous »

У меня есть проблемы с использованием селекторов, которые доступны для Cheerio.js, которые я использую на своем сервере узлов. Ядро предположительно основано на jQuery, однако я не могу заставить его работать, используя тот же выбор, что и с нативным jQuery.

few cells here

These are the rows I want


< /code>
Поскольку на странице есть две таблицы с классом «Список». Я не могу выбрать это напрямую, поэтому мне нужна ссылка на Div с классом «Тест». Выбор, который я могу запустить с jQuery, был бы чем -то вроде: < /p>
$('div.test tbody tr')
< /code>
Но это не работает с Cheerio. Если я запускаю $ ('div [class = "test"] tr'), я получаю все строки на таблице, даже ряды Thead, так что это не работает для меня. < /P>
Есть какие -либо предположения?// Load the html
var $ = cheerio.load(html, {
normalizeWhitespace: true
});

$('div.tillgodo tbody tr').each(function(){
console.log("Found credited course...");
var children = $(this).children();
var credits = parseFloat($(children[3]).text().replace(',', '.')); // We need to replace comma with a dot since parseFloats only supports dots by design

var row = {
"course" : $(children[1]).text().trim(),
"grade" : null,
"credits" : credits,
"date" : $(children[4]).text()
};

// Push course to JSON object
console.log("Push course to object...");
console.log("------------------------------------------\n");
data.credited_courses.push(row);
data.credited_courses_credits += parseFloat(credits);
});

Следующий код работает для таблицы first :
$('tr.incomplete.course').each(function(i, tr){
console.log("This is course nr: " + parseInt(course_count+1));
console.log("Found incompleted course...");
var children = $(this).children();
var credits = parseFloat($(children[2]).text().replace(',', '.').match(/(\+|-)?((\d+(\.\d+)?)|(\.\d+))/)[0]); // Filter out any parentheses and odd characters
var row = {
"course" : $(children[1]).text(),
"grade" : $(children[3]).text(),
"credits" : credits,
"date" : $(children[5]).text()
};

// Sum the total amount of credits for all courses
console.log("Add credits to incompleted_credits...");
data.incompleted_credits += credits;

console.log("Push course to object...");
data.incompleted_courses.push(row);
course_count++;
});
< /code>
Когда я говорю, что это не работает, означает, что объект JSON, который я возвращаю, не имеет ожидаемых строк из второй таблицы.
Tillgodoräknanden



Kurskod
Kursnamn
Beslutsfattare
Poäng
Datum





Summa tillgodoräknade poäng:
10,5






Valfria kurser
xxx
10,5
2013-06-03







Подробнее здесь: https://stackoverflow.com/questions/283 ... cheerio-js
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»