为什么我在此标签下拉菜单上所做的任何选择<select>总是默认为我设置的最后一个 if 语句?



我对开发网页的开发很新,因此,如果答案很明显,那么我深表歉意。我正在尝试在视频播放器上创建一个功能齐全的播放率更改菜单,但是每次我在下拉菜单上选择任何选项时,我从.js总是默认到最后一个If语句的结果。在这种情况下,选择例如" 0.5X"速度,它始终将默认为1.75,因为这就是我在JS IF语句中提到的最后一件事。

var playbackSpeeds = document.getElementById ("speedValues");
speedValues.addEventListener ("input", changePlaybackSpeed)
function changePlaybackSpeed()
{
    if (document.getElementById("speedValues").value = "2x")
    {
        myVideo.playbackRate = 2.0;
    }
    if (document.getElementById("speedValues").value = "0.5x")
    {
        myVideo.playbackRate = 0.5;
    }
    if (document.getElementById("speedValues").value = "0.75x")
    {
        myVideo.playbackRate = 0.75;
    }
    if (document.getElementById("speedValues").value = "1x")
    {
        myVideo.playbackRate = 1.0;
    }
    if (document.getElementById("speedValues").value = "1.25x")
    {
        myVideo.playbackRate = 1.25;
    }
    if (document.getElementById("speedValues").value = "1.5x")
    {
        myVideo.playbackRate = 1.5;
    }
    if (document.getElementById("speedValues").value = "1.75x")
    {
        myVideo.playbackRate = 1.75;
    }
}`

id喜欢最终结果,实际上使用用户将设置它的速度,而不是现在发生的速度。任何帮助将不胜感激。

您应该给===

var playbackSpeeds = document.getElementById ("speedValues");
speedValues.addEventListener ("input", changePlaybackSpeed)
function changePlaybackSpeed(){
if (document.getElementById("speedValues").value === "2x")
{
    myVideo.playbackRate = 2.0;
}
if (document.getElementById("speedValues").value === "0.5x")
{
    myVideo.playbackRate = 0.5;
}
if (document.getElementById("speedValues").value === "0.75x")
{
    myVideo.playbackRate = 0.75;
}
if (document.getElementById("speedValues").value === "1x")
{
    myVideo.playbackRate = 1.0;
}
if (document.getElementById("speedValues").value === "1.25x")
{
    myVideo.playbackRate = 1.25;
}
if (document.getElementById("speedValues").value === "1.5x")
{
    myVideo.playbackRate = 1.5;
}
if (document.getElementById("speedValues").value === "1.75x")
{
    myVideo.playbackRate = 1.75;
}
}

您使用的是单个等于=,您需要双==或Triple ===等于。

当您在JavaScript中写下这样的东西...

var x = 5;
if(x = 3){
   alert("it's three")
}

...您将x至5设置为5,然后将其再次设置为3。

相反,您需要此:

var x = 5;
if(x === 3){
   alert("it's three")
}

将检查x是否具有3的值。建议使用===而不是==,因为===是类型安全。

另一个可能的选项是参考选项ID。

<option id='1'></option>

javaScript:

if(document.getElementbyId("1").value='1.5'){
 myVideo.playbackRate = 1.5;
}

最新更新