簡體   English   中英

JavaScript,如果不起作用

[英]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語句。 什么情況是, 1912 ,和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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM