Я использую jQuery (ну, привет), чтобы очистить данные из таблицы html. Я пытаюсь отобразить данные из одного столбца, в котором есть текст и изображение в ячейке, но я хочу, чтобы он отображал только текст.
, например, таблица выглядит так:
col 1 | col 2 | col 3
---------------------------------------
data 1-1 [img] | data 1-2 | data 1-3
data 2-1 [img] | data 2-2 | data 2-3
data 3-1 [img] | data 3-2 | data 3-3
data 4-1 [img] | data 4-2 | data 4-3
Когда я выбираю вот так: $(this).children().next().text()
, он выводит все в этой строке, например: data 1-1 data 1-2 data 1-3
Он работает, когда я делаю $(this).children().next().html()
, но тогда вывод следующий: data 1-1 <img src="blah.jpg">
, очевидно, потому что он включает html изображения в этом столбце.
Как мне заставить его выбрать только data 1-1
без включения img или остальной части этой строки?
Я очень новичок в jQuery, поэтому мне было трудно с этим. Приносим извинения, если этот вопрос уже был задан, я ничего не нашел об этом ... Я оставил код для простоты, но дайте мне знать, если вы хотите увидеть всю функцию
ОБНОВЛЕНИЕ: ОТВЕТ
Спасибо Роко за помощь, вот решение, реализованное с моим полным кодом (я использовал .eq(0)
вместо tr:eq(0)
, потому что я использую cheerio )
router.get("/scrape", function(req, res){
request("http://link-goes-here", function(error, response, html){
var $ = cheerio.load(html);
var storeInfo = [];
$("body > table > tbody > tr > td:nth-child(1) > table").addClass("row");
//loop through selected table only where tr = "QA1"
$('.row > tbody > tr:contains("QA1")').each(function(i, element){
var result = {
"environment" : $(this).children().next().eq(0).text(),
"store" : $(this).children().next().next().html(),
"version" : $(this).children().next().next().next().html()
};
storeInfo.push(result);
});
});
res.redirect("/stores");
});