Javascript 这个switch语句和jQuery有什么问题?
所以你可能会看到我在做什么。我还以为它工作得很好,但后来我注意到它会一次又一次地加载相同的5篇文章。所以我尝试手动添加一个switch语句,但这只会返回uncaughtreferenceerror:赋值的左侧无效,我在谷歌上搜索了一下,发现了一点。可能是因为我在编辑变量,我正在使用开关?但不管怎样,我怎样才能做得更好,或者修复它Javascript 这个switch语句和jQuery有什么问题?,javascript,jquery,switch-statement,Javascript,Jquery,Switch Statement,所以你可能会看到我在做什么。我还以为它工作得很好,但后来我注意到它会一次又一次地加载相同的5篇文章。所以我尝试手动添加一个switch语句,但这只会返回uncaughtreferenceerror:赋值的左侧无效,我在谷歌上搜索了一下,发现了一点。可能是因为我在编辑变量,我正在使用开关?但不管怎样,我怎样才能做得更好,或者修复它 $("#loadmore").click(function(e){ if ($(this).attr("varl") == "30"){
$("#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;
});
应该是
$("#loadmore").attr("varl","10");
应该是
$("#loadmore").attr("varl","10");
$loadmore.attrvall=10;工作老实说,我从来没有见过它像这样被用作旁注,没有使用该名称的有效属性,这表明您的标记无效,可能应该查看数据属性;工作老实说,我从来没有见过它像这样被用作旁注,没有使用该名称的有效属性,这表明您的标记无效,可能应该查看数据属性。啊,非常感谢!我考虑了这个问题,但没有考虑太多。它修复了整个代码顺便说一句,再次感谢:-将在10分钟内成为正确答案,当我听到时,非常感谢!我考虑了这个问题,但没有考虑太多。它修复了整个代码顺便说一句,再次感谢:-将在10分钟内成为正确答案,当我canBlazemonger已经指出问题时,但这似乎是一个更好的代码,所以我将投票支持它:+1,以干燥代码。这可能是因为如果在switch cases中只有可能的值,那么switch语句就不需要了。非常感谢各位:您甚至可以用if value%5===0{…}替换case/switch?我的大脑现在已经崩溃了,所以我真的不能做任何事情,正如你从我的错误中看到的那样。有没有人介意做一个小片段呢?Blazemonger已经指出了这个问题,但这似乎是一个更好的代码,所以我将投票支持它:+1以干燥代码。这可能是因为如果在switch cases中只有可能的值,那么switch语句就不需要了。非常感谢各位:您甚至可以用if value%5===0{…}替换case/switch?我的大脑现在已经崩溃了,所以我真的不能做任何事情,正如你从我的错误中看到的那样。有人介意说一小段吗?
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;
}