Jquery if value <= something dont work.

问题描述 投票:0回答:1

请帮助我理解为什么这部分代码不工作.我试图根据一个变量来样式一个块,但这部分不工作。

var starsrating = 3;

    function markstars() {

        if (jQuery(starsrating).val() >= 1) {
            jQuery("div.rating-star1").addClass("rating-star-active");
             console.log("1");
        }
        if  (jQuery(starsrating).val() >= 2) {
            jQuery("div.rating-star1, div.rating-star2").addClass("rating-star-active");
             console.log("2");
        }
        if  (jQuery(starsrating).val() >= 3) {
            jQuery("div.rating-star1, div.rating-star2, div.rating-star3").addClass("rating-star-active");
             console.log("3");
        }
        if  (jQuery(starsrating).val() >= 4) {
            jQuery("div.rating-star1, div.rating-star2, div.rating-star3, div.rating-star4").addClass("rating-star-active");
             console.log("4");
        }
        if  (jQuery(starsrating).val() >= 5) {
            jQuery("div.rating-star1, div.rating-star2, div.rating-star3, div.rating-star4, div.rating-star5").addClass("rating-star-active");
             console.log("5");
        }
        console.log("end of func");
    }
     markstars();
javascript jquery
1个回答
0
投票

starsrating 是一个普通的数字;你不能调用 jQuery 的状态。

进一步的简化是在所有的数字1...5上循环,并设置好这些数字的状态。div的程序化。

function markstars(starsrating) {
  for (var i = 1; i <= 5; i++) {
    jQuery("div.rating-star" + i).toggleClass("rating-star-active", starsrating >= i);
  }
}
markstars(3);
© www.soinside.com 2019 - 2024. All rights reserved.