2017-08-16 104 views
-3

请帮助这里:如果条件总是返回true,虽然它是错误的? 这些都是可变的股利和变量的html代码开头如果条件总是返回true

(<div class="div" id="div" style="background:yellow"></div>) 
(<input type="text" id="your">) 

$(document).ready(function generate() { 
     "use strict"; 
     var x = $(".2").text(Math.floor((Math.random() * 10))), 
      z = $(".3").text(Math.floor((Math.random() * 10))); 

     $(".div").text(x.text() + z.text()); 
    }); 



     var show = document.getElementById("show"), 
      your = document.getElementById("your").value, 
      div = document.getElementById("div").textContent; 
     show.onclick = function() { 
      "use strict"; 
      if (your == div) { 
       alert("yes"); 
      } else { 
       alert("noo"); 
      } 
     }; 
+2

你有没有做过任何调试,从而不断什么?什么是“你的”和“div”输出? –

+0

为什么你把它标记为jQuery,当它是纯粹的JavaScript?尝试在if语句之前添加一些console.log(your)和console.log(div),看看你得到了什么。例如,如果两者都未定义,那么平等就是真实的。 – Snowmonkey

+0

所以对于这些错误感到抱歉,是的,在控制台中,这两个值是空的,我现在编辑我的问题。 –

回答

1

的问题是,你所定义的功能之外的值。因此,在onclick处理程序中,您将比较初始值。

如果你想实际值,你应该访问值在函数内部:

var show = document.getElementById("show"), 
    your = document.getElementById("your"), 
    div = document.getElementById("div"); 

show.onclick = function() { 
    if (your.value == div.textContent) { 
     alert("yes"); 
    } else { 
     alert("noo"); 
    } 
}; 
+0

非常感谢,你解决了它... –

+0

高兴地帮助,请接受答案;) – webdeb