Javascript 我怎么会选择这个<;选择>;标记下拉菜单总是默认为我设置的最后一条if语句?
我对开发网页还很陌生,所以如果答案显而易见,那么我道歉。我试图在我的视频播放器上创建一个功能齐全的播放速率更改菜单,但每次我在下拉菜单上选择任何选项时,从my.js获得的结果总是默认为最后一个if语句。在本例中,选择例如“0.5x”速度,它将始终默认为1.75,因为这是我在js if语句中提到的最后一件事Javascript 我怎么会选择这个<;选择>;标记下拉菜单总是默认为我设置的最后一条if语句?,javascript,html,Javascript,Html,我对开发网页还很陌生,所以如果答案显而易见,那么我道歉。我试图在我的视频播放器上创建一个功能齐全的播放速率更改菜单,但每次我在下拉菜单上选择任何选项时,从my.js获得的结果总是默认为最后一个if语句。在本例中,选择例如“0.5x”速度,它将始终默认为1.75,因为这是我在js if语句中提到的最后一件事 var playbackSpeeds = document.getElementById ("speedValues"); speedValues.addEventListener ("inp
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;
}
}`
我希望最终结果能够实际工作,使用用户将设置的速度,而不是现在发生的事情。任何帮助都将不胜感激。您使用的是单个equals
=
,您需要一个双=
或三==
equals
当你用JavaScript写这样的东西时
var x = 5;
if(x = 3){
alert("it's three")
}
…您将x
设置为5,然后再次将其设置为3
相反,您需要:
var x = 5;
if(x === 3){
alert("it's three")
}
这将检查
x
的值是否为3
。使用===
而不是=
,因为==
是类型安全的 另一个可能的选项是引用选项id
<option id='1'></option>
您应该给出
==
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;
}
}
比较运算符是
=
,而不是赋值运算符=
:)使用=
代替=
,使用=
(赋值运算符)您实际上是在赋值,所以如果语句
一直到最后都是真的。
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;
}
}