废弃表格...每个国家/地区名称都在<a>
标记内,但有些不在。当结构改变时,程序崩溃
代码=>
输出=>
我尝试执行以下操作
const countryName = e.children[1].children[0].children[0].data || 'hello world'
不起作用但我也尝试过IfStatement
const countryName = e.children[1].children[0].children[0].data
if (countryName === undefined) {
countryName = 'hello world'
}
也没有,相同的输出错误。
我知道错误的含义是什么...我知道HTML结构是不同的,但是它不会读取为将countryName
变量赋予其值而实施的条件
有什么想法吗?
PD:与cheeriojs相同的输出
您可能想要类似的东西:
$(e).find('a').first().text() || 'hello world'
您几乎永远都不想求助于患有中风的孩子。
您检查undefined
太晚了:任何children
都可以是undefined
,并且用undefined
索引此[0]
会引发错误。
如果您的Node.js(V8)或转码支持optional chaining和nullish coalescing,则可以执行此操作:
const countryName = e?.children?.[1]?.children?.[0]?.children?.[0]?.data ?? 'hello world';
否则,您需要此:
const countryName =
e &&
e.children &&
e.children[1] &&
e.children[1].children &&
e.children[1].children[0] &&
e.children[1].children[0].children &&
e.children[1].children[0].children[0] &&
e.children[1].children[0].children[0].data ||
'hello world';