我对学习Javascript和Jquery都很陌生。
在我正在创建的网站中,我试图在JQuery行中插入Javascript if语句和for循环。最后一次确认没有运行。我怀疑这是导致问题的if语句。我怎样才能解决这个问题?这是我的代码的样子。
$(document).ready(function() {
$(".button3").click(function() {
var lastname = $('#lastnameresponse').val();
confirm("You're last name is" + " " + lastname);
if (userResponse = "girl") {
for (var i = 0; i <= girlnames.length; i++) {
confirm("Your future daughter's name is" + " " + random + " " + randomagain + " " + lastname);
})
});
答案 0 :(得分:2)
有一个 lot 对你的代码没有多大意义。
首先,userResponse
是什么?这个定义在哪里以及它在哪里设置?您是否在调试器下验证了它确实等于到“女孩”?
其次,你可能想在这里使用比较等于而不是赋值等于:
if (userResponse = "girl") { // This should be ==
但是,这不应该阻止块运行。实际上,它会强制阻止始终运行,因为“girl”是真的。
第三,girlnames
是什么?它是一个阵列吗?这定义在哪里?你确认它确实包含有效的项目吗?
最后,我认为您的for
循环不正确:
for (var i = 0; i <= girlnames.length; i++) {
应该是:
for (var i = 0; i < girlnames.length; i++) {
数组从0开始,因此girlnames[girlnames.length]
不是有效项。
但是,考虑到你不在任何地方使用循环中的i
变量,这不应该实际导致任何错误。
我会使用脚本调试器逐行完成代码(在现代浏览器中通常为 F12 ),并设置一个断点:
var lastname = $('#lastnameresponse').val();
然后验证每一行的行为是否正确。如果仍然无效,您需要发布更多代码,以便我们更好地了解正在发生的事情。
<强>更新强>
根据您的评论:
这是定义userResponse变量的地方: $(document).ready(function(){$(“#girlimg”)。click(function(){var userResponse = prompt(“确认您选择的性别”)。toLowerCase; $('html,body')。animate({scrollTop:$(“。LastName”)。offset()。top}, 2000);
似乎userResponse
在#girlimg
标记的点击处理程序中声明:
$("#girlimg").click(function() {
// Everything declared here is local to this function
var userResponse = confirm(); // local variable
});
因此,.button3
的点击处理程序无法访问它。您需要在两个函数都可访问的作用域中声明userResponse
。也许全局(这在JavaScript中是不受欢迎的)或在$(document).ready()
代码中,只要在该块中定义了单击事件处理程序。
答案 1 :(得分:2)
首先:它是Your
而非You're
:)
其次,userResponse
未定义。也许它被定义在其他地方。
为了进行比较,请使用==
运算符。
你确定你想做什么?我看到你那里也有confirm
。
像这样使用confirm
:
$(".button3").click(function() {
var lastname = $('#lastnameresponse').val();
// confirm() returns true or false, depending on the clicked button
is_confirmed = confirm("You're last name is" + " " +lastname);
if (true == is_confirmed) {
for (var i = 0; i <= girlnames.length; i++) {
confirm ("Your future daughter's name is" + " " + random + " " + randomagain + " " + lastname);
}
}
});
这里也没有定义 girlnames
(也许它在其他地方)。 random
和randomagain
至于在jQuery中编写JavaScript:没有这样的问题。 jQuery是一个用Javascript编写的库,它提供了有用的功能来简化开发。
答案 2 :(得分:0)
答案 3 :(得分:0)
当你放下时,你忘了关闭一些箭头:
if (userResponse ="girl"){...}
将userResponse变量设置为“girl”,并将值传递给变量
检查userResponse等于“女孩”你应该把
if (userResponse =="girl")
您的最终代码将如下所示
$(document).ready(function(){
$(".button3").click(function() {
var lastname = $('#lastnameresponse').val();
confirm("You're last name is" + " " +lastname);
if (userResponse ="girl") {
for (var i = 0; i <= girlnames.length; i++) {
confirm ("Your future daughter's name is" + " " + random + " " + randomagain + " " + lastname);
}}}
)
});
p.s:你忘了关闭太多的箭头