提问人:Eve Ninnall 提问时间:12/26/2022 最后编辑:Eve Ninnall 更新时间:12/26/2022 访问量:107
需要标识符,但看到的是“0”
Expected an identifier and instead saw '0'
问:
如何在这里修复这个 jslint 错误?https://jsfiddle.net/cfv2g1ho/
[JSLint 无法完成]期望有一个标识符,而是看到了 '0'.
function onYouTubeIframeAPIReady() {
let playerVarsList = {
0: {
playerVars: {
playlist: "0dgNc5S8cLI,mnfmQe8Mv1g,-Xgi_way56U,CHahce95B1g"
}
},
1: {
playerVars: {
listType: "playlist",
list: "PLYeOyMz9C9kYmnPHfw5-ItOxYBiMG4amq"
}
}
}
//to add the player to all the play buttons
const totalP = document.querySelectorAll('[data-container="play1"]').length;
//looping over all the play buttons and adding player to that
for (let i = 0; i < totalP; i++) {
players.add(".playSingle" + i, (playerVarsList[i] || {}));
}
players.add(".playInitial", {});
}
答:
1赞
Nora Söderlund
12/26/2022
#1
0
但是,不是有效的标识符。但是你把你的对象作为一个数组来处理,那么你为什么不使用数组而不是一个对象呢?"0"
let playerVarsList = [
{
playerVars: {
playlist: "0dgNc5S8cLI,mnfmQe8Mv1g,-Xgi_way56U,CHahce95B1g"
}
},
{
playerVars: {
listType: "playlist",
list: "PLYeOyMz9C9kYmnPHfw5-ItOxYBiMG4amq"
}
}
]
但是,如果您确实有理由绝对使用对象,则:
let playerVarsList = {
"0": {
playerVars: {
playlist: "0dgNc5S8cLI,mnfmQe8Mv1g,-Xgi_way56U,CHahce95B1g"
}
},
"1": {
playerVars: {
listType: "playlist",
list: "PLYeOyMz9C9kYmnPHfw5-ItOxYBiMG4amq"
}
}
}
混合数字和字符串时要小心使用严格模式,例如 如果启用了严格模式,则不起作用。playerVarsList[i]
评论
0赞
Eve Ninnall
12/26/2022
使用双引号,而不是单引号。我到底该怎么做?totalPlayButtons = document.querySelectorAll('[data-container=“play1”]').length;
4赞
Nora Söderlund
12/26/2022
document.querySelectorAll(`[data-container="play1"]`)
或document.querySelectorAll("[data-container=\"play1\"]")
0赞
Eve Ninnall
12/26/2022
代码现在不起作用:playerVarsList[i] jsfiddle.net/aegkjpf1 我该怎么办?
4赞
Nora Söderlund
12/26/2022
for (let i = 0; i < totalP; i++)
... 不是一个数字,它是一个 DOM 元素集合(类似数组)......您应该使用 .totalP
totalP.length
评论