[英]JavaScript If Less Than Not Working
在我的html中,我有以下内容:
<div class="boxS" data-catTotal="19"></div>
<div class="boxS" data-catTotal="12"></div>
<div class="boxS" data-catTotal="4"></div>
<div class="boxS" data-catTotal="8"></div>
<div class="boxS" data-catTotal="4"></div>
<div class="boxS" data-catTotal="1"></div>
而我的JavaScript如下:
var sizeBoxMax = null;
var sizeNew;
$(".boxS").each(function(){
var sizeBox = $(this).attr("data-catTotal");
alert($(this).attr("data-namez") + " " + sizeBox + " " + sizeBoxMax);
if (sizeBox < sizeBoxMax) {
sizeNew = (sizeBox / sizeBoxMax) * 100;
sizeNew = Math.ceil(sizeNew.toFixed(0));
$(this).attr("style", "width: " + sizeNew + "% !important");
}
else {
if (sizeBoxMax == null) {
sizeBoxMax = $(this).attr("data-catTotal");
}
// alert($(this).attr("data-namez") +" "+ sizeBox);
}
});
问题是,即使sizeBoxMax
为19,也不会访问if
语句。 什么情况是, 19
, 12
,和1
是正确的工作,但其余不受影响。 关于我能做什么的任何想法? 我试图parseInt()
但我刚得到NaN
。 任何帮助将不胜感激! 谢谢。
需要将sizeBoxMax
初始值设置为integer
而不是null
使用int值时,可以看到结果在jsuna的小提琴中工作。
除了Christopher Marshall的Answer,您还应该使用jQuery的Data()方法。
var sizeBox = $(this).data("catTotal");
和
sizeBoxMax = $(this).data("catTotal");
会尝试将字符串转换为JavaScript值(包括布尔值,数字,对象,数组和null)。 仅在不更改值表示形式的情况下,将值转换为数字。 例如,“ 1E02”和“ 100.000”等价于数字(数值100),但对其进行转换将改变其表示形式,因此它们保留为字符串。 字符串值“ 100”将转换为数字100。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.