需要标识符,但看到的是“0”

Expected an identifier and instead saw '0'

提问人:Eve Ninnall 提问时间:12/26/2022 最后编辑:Eve Ninnall 更新时间:12/26/2022 访问量:107

问:

如何在这里修复这个 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", {});

}
JavaScript JSLint

评论

0赞 Nico Haase 12/26/2022
如果您已经知道为什么会发生此错误,那么是什么阻止您解决它?
0赞 Nico Haase 12/26/2022
您可以使用任何文本编辑器更改代码。另外,请通过编辑来为您的问题添加所有澄清

答:

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 元素集合(类似数组)......您应该使用 .totalPtotalP.length