这个switch语句和jQuery有什么问题?

时间:2013-03-22 20:44:14

标签: javascript jquery switch-statement

所以你可能会看到我想要做的事情。而且我认为它也工作得很好,但后来我注意到它会一遍又一遍地加载相同的5个帖子。所以我尝试手动添加一个switch语句,但这只是返回“Uncaught ReferenceError:赋值中的无效左侧”,我用Google搜索并发现了一点点。可能是我编辑变量我正在使用开关?但无论如何,我怎样才能做得更好,或者解决它?

    $("#loadmore").click(function(e){
         if ($(this).attr("varl") == "30"){
           alert("All posts loaded");
         }else{
        var createDiv = $("<div class='loading" + $(this).attr("varl") +"'></div>");
        createDiv.hide();
        $(createDiv).appendTo("#left").load("loadmore.php?last=" + $(this).attr("varl"));
        switch($("#loadmore").attr("varl")){
            case '5':
                $("#loadmore").attr("varl") = "10";
            break;
            case '10':
                $("#loadmore").attr("varl") = "15";
            break;
            case '15':
                $("#loadmore").attr("varl") = "20";
            break;
            case '20':
                $("#loadmore").attr("varl") = "25";
            break;
            case '25':
                $("#loadmore").attr("varl") = "30";
            break;
        }
        console.log($("#loadmore").attr("varl") + 5);
        $(createDiv).delay(500).slideDown(500);
        }
        e.preventDefault();
        return false;
    });

2 个答案:

答案 0 :(得分:9)

$("#loadmore").attr("varl") = "10";

应该是

$("#loadmore").attr("varl","10");

http://api.jquery.com/attr/#attr2

答案 1 :(得分:4)

var $element = $("#loadmore"),
    value = parseInt($element.attr("varl"),10); // always use a radix

switch ( value ) {
    case 5:
    case 10:
    case 15:
    case 20:
    case 25:
        $element.attr("varl", value + 5); // here's the problem
        break;
}