当我第一次运行该函数时,任何一种条件都将起作用。但是,当我第二次运行该函数时,“ cute”的新值将不会更改背景图像。

$("#sbmt-button").click(newImage);

function newImage(){
    event.preventDefault();
    var cute = $("#cute").val();
    $("#cute").val(" ");

   if (cute == "kittens") {
      $("body").attr("class", "kittens");
        console.log(cute);
    } else if (cute == "puppies"){
       $("body").attr("class", "puppies");
      console.log(cute);

    }
}


http://codepen.io/ElaineM/pen/jbYbwj

最佳答案

您的代码实际上有效,但是唯一的事情是您需要使用$("#cute").val("");而不是$("#cute").val(" ");,这会放置一个空格并且与值不匹配。

另外,您可以尝试通过以下方式进行比较:修剪空白处:

function newImage(){
    event.preventDefault();
    var cute = $("#cute").val().trim();
    $("#cute").val(" ");

   if (cute == "kittens") {
      $("body").attr("class", "kittens");
        console.log(cute);
    } else if (cute == "puppies"){
       $("body").attr("class", "puppies");
      console.log(cute);

    }
}

07-24 17:20