javascript 我的函数无法运行第二个条件

vwoqyblh  于 2023-03-06  发布在  Java
关注(0)|答案(2)|浏览(132)

如果select is 1//的值未粘贴js代码,则我的代码不会运行第二个条件

function changeHref() {
    var select = 0;
    const link = document.querySelector("link");

    if (select === 0){
        link.href="css/styleOne.css";
        select = 1;
    } else if (select === 1) {
        link.href="css/styleTwo.css";
        select = 0;
    }
}

我试着把条件语句做成两个字符串,如果它们有相同的href值,但是现在我试着把它作为一个var变量来检查值是1还是0,但是我仍然不确定为什么它不能运行。我还没有尝试其他元素的其他属性

thigvfpy

thigvfpy1#

我假设select只有两个值,分别是0和1,在这种情况下,我宁愿将select的值改为布尔值,并在函数之外分配select的值。
在您的示例中,select在函数内部初始化,因此它始终为0

let select = true

function changeHref() {
  const link = document.querySelector("link");
  if (select) {
    link.href = "css/styleOne.css";
  } else {
    link.href = "css/styleTwo.css";
  }
  select = !select;
}
sirbozc5

sirbozc52#

因为你总是在你的方法开始的时候把select设置为0。你需要select是一个全局变量而不是一个局部变量。把它作为一个参数传递进来。
例如,

function changeHref(selected) {
    const link = document.querySelector("link");

    if (selected === 0){
        link.href="css/styleOne.css";
        selected = 1;
    } else if (selected === 1) {
        link.href="css/styleTwo.css";
        selected = 0;
    }

   return selected;
}

相关问题