JQuery table 中的选择器

JQuery selector in table

我有一个循环遍历 table 中的所有行。进入 table 后,我想获取嵌套值。例如,赢,输。那将具有 [data-stat=wins] 的 html 属性。 这是我的代码,

const result = await request.get("https://www.basketball-reference.com/boxscores/");
const $ = cheerio.load(result);

var teams = [];
var wins = [];
var losses = [];

$('#confs_standings_E > tbody > tr').each((index, element) => {
    var wins = $(element > $('[data-stat=wins]'));
    console.log(wins)
    console.log($(element).text())

})

Console.log(wins) returns 一个空字符串。但是它之后的行 returns 所有行。这看起来很简单我以前从未使用过 JQuery 所以不知道该怎么做。

您需要使用 push()wins 空数组中添加数据,如下所示。

您还需要检查 element- console.log(element) 中的内容,并查看是否返回了 data-stat=wins 中的数据。

一旦它返回了一些东西。然后你使用下面的代码将数据推送到你的 wins = [] 数组

const result = await request.get("https://www.basketball-reference.com/boxscores/");
const $ = cheerio.load(result);

var teams = [];
var wins = [];
var losses = [];

$('#confs_standings_E > tbody > tr').each((index, element) => {
    var wins.push($(element > $('[data-stat=wins]')))
    console.log($(element).text())
    console.log(wins)
})

我猜你想要这个,如果它只是直接的 children,你包含 >.

$(element).children('[data-stat=wins]'));

或对所有后代使用.find()

你基本上做的是将 > 大于运算符应用于一个元素,比较它是否大于 [=14= 返回的 jQuery object ].有效但没用。

然后您将该结果传递给 jQuery 函数。 None 将产生任何类型的理想结果。

您的外部 wins 数组是不必要的,除非您希望维护一个外部值列表。您更有可能只想使用在处理程序中找到的值。