Javascript 我不断得到gt;使用子字符串或切片时

Javascript 我不断得到gt;使用子字符串或切片时,javascript,Javascript,我正在构建一个带有播放列表的视频播放器,并使用符号“>”指示当前正在播放的视频。我有以下功能: player.onended = function () { pl.childNodes[curVideo + 1].childNodes[0].innerHTML = pl.childNodes[curVideo + 1].childNodes[0].innerHTML.slice(1); ++curVideo; if (playlist.length

我正在构建一个带有播放列表的视频播放器,并使用符号“>”指示当前正在播放的视频。我有以下功能:

player.onended = function () {
        pl.childNodes[curVideo + 1].childNodes[0].innerHTML = pl.childNodes[curVideo + 1].childNodes[0].innerHTML.slice(1);
        ++curVideo;
        if (playlist.length == 0) {
            player.setAttribute("src", "");
        }
        else if (curVideo < playlist.length) {
            player.setAttribute("src", playlist[curVideo]);
            pl.childNodes[curVideo + 1].childNodes[0].innerHTML = ">" + pl.childNodes[curVideo + 1].childNodes[0].innerHTML;
        } else {
            curVideo = 0;
            player.setAttribute("src", playlist[curVideo]);
            pl.childNodes[curVideo + 1].childNodes[0].innerHTML = ">" + pl.childNodes[curVideo + 1].childNodes[0].innerHTML;
        }
    }
删除后:

>htt://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4
gt;htt://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4

通过使用innerText属性而不是innerHTML进行修复

您假设
将作为
返回给您。它不在您的示例中,而是作为
返回给您。记住,这是HTML。在大多数情况下,
不一定要使用命名字符实体,但这并不少见

这可能是可靠的,也可能不是可靠的跨浏览器,所以要删除它,如果您需要使用
innerHTML
,我可能会这样做:

l.childNodes[curVideo + 1].childNodes[0].innerHTML =
    pl.childNodes[curVideo + 1].childNodes[0].innerHTML.replace(/^(?:>|\&gt;)/, "");
// ----------------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…这将在字符串开头删除它,无论它返回为
还是

或者,使用或,这样您就不用处理HTML了。

可能值得一提,特别是关于页面回流的问题。