如何在jQuery/jS中使用if语句改变变量值
how to change variable values using if statement in jQuery/jS
你好,我的程序有一些问题。我在程序的开头设置了一些变量,但是我想用if语句来改变它们。现在第一个if语句给了我我想要的结果,但第二个else if语句不起作用,变量采用默认值'0'
这是我的jQuery代码的开始:
jQuery(".repair-grid-item1").click(function(){
jQuery(".repair-grid-item1 i").toggle();
jQuery(".repair-grid-item1").toggleClass("grid-active");
jQuery('.repair-grid-item1').gg();
});
(function( $ ){
$.fn.gg = function() {
var price = 0;
var one = 0;
var two = 0;
var three = 0;
var four = 0;
var five = 0;
var six = 0;
// *** this code block is working, returning correct values ***
if (jQuery(".repair-grid-item").hasClass("iPhone5")) {
var one = 85;
var two = 70;
var three = 75;
var four = 65;
var five = 75;
var six = 80;
}
// *** this code block isnt working, returning default values of 0 ***
else if (jQuery(".repair-grid-item").hasClass("iPhone5c")) {
var one = 85;
var two = 70;
var three = 75;
var four = 65;
var five = 75;
var six = 80;
}
//one only
if (jQuery(".repair-grid-item1").hasClass("grid-active") &&
!jQuery(".repair-grid-item2").hasClass("grid-active") &&
!jQuery(".repair-grid-item3").hasClass("grid-active") &&
!jQuery(".repair-grid-item4").hasClass("grid-active") &&
!jQuery(".repair-grid-item5").hasClass("grid-active") &&
!jQuery(".repair-grid-item6").hasClass("grid-active"))
{
price = one;
document.getElementById("total-price").innerHTML = price;
localStorage.setItem("sum", price);
}
};
})( jQuery );
这是我的html代码的一小段(这是iPhone5页面)
<div class="repair-grid-item repair-grid-item1 iphone5">
<h3>Screen Repair</h3>
<i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i>
</div>
iphone5c页面:
<div class="repair-grid-item repair-grid-item1 iphone5c">
<h3>Screen Repair</h3>
<i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i>
</div>
谢谢!
Javascript中的变量是函数作用域。您不必在if
, else-if
块中使用var
再次声明它们。
编辑:正如其他人指出的那样,问题是css类iphone5c
的情况。您正在检查iPhone5c
问题是你检查的是iPhone5c
类而不是iphone5c
类,注意大写p . JQuery是区分大小写的,所以你应该用相同的大写字母来写它们。
所以你的代码在变量上存储0,因为它没有通过if else
条件。
此外,正如其他答案所说,由于作用域的关系,不需要在if
中使用var
重新声明变量。你应该把它删掉
我很抱歉,伙计们,我犯了一个愚蠢的错误,@nnnnnn给我指出了正确的方向。我的情况不一致,'iPhone5c'大写P在我的jQuery代码中,而'iPhone5c'小写P在我的html中。我修正了案例,现在可以正常工作了。另外,你们也是正确的,我不需要在if和else if情况下的每个变量前面都有"var"。谢谢你的帮助!感谢@nnnnnn找到解决方案:)
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在 API 调用后和 if 语句中启用提交按钮
- 带有多个elseif的Javascript if语句
- Sharepoint JScript if语句未执行
- for循环中的javascript if语句找不到==
- jquery if语句返回return wong语句
- 在if语句下的html中使用javascript变量
- 将错误与if语句混淆
- 循环通过数组的If语句不起作用
- jQuery模板中的If语句
- 如何从数据库中回显If语句
- 如何减少if语句的数量
- 在Javascript中将一个值和字符串数组转换为if语句
- Dropbox oauth认证的IF语句的第二部分是't已触发
- MVC Jquery-按钮点击-获取if语句错误
- 如何重写Javascript If语句以选择Classes而不是ID's的HTML格式
- KnockoutJS:为虚拟元素使用嵌套的条件if语句
- If语句发布或操作员发布
- 清除函数中if语句内部不起作用的间隔
- 使用if语句重新循环