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
数组是不必要的,除非您希望维护一个外部值列表。您更有可能只想使用在处理程序中找到的值。
我有一个循环遍历 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
数组是不必要的,除非您希望维护一个外部值列表。您更有可能只想使用在处理程序中找到的值。