我正在尝试使用此for
循环来显示div。但是我从jQuery lib中得到了一个奇怪的错误。
错误:语法错误,无法识别的表达式:= 10]
我已经阅读了javascript小数的问题,但我仍然无法理解为什么这不起作用:
for (var i = 10.00; i >= ui.value; i -= 0.25) {
$("data_id=" + Math.floor(i) + "]").show();
}
隐藏div时,我使用它并且工作正常:
for (var i = 0.00; i < ui.value; i += 0.25) {
$("[data_id=" + Math.floor(i) + "]").hide();
}
答案 0 :(得分:5)
你忘记了[在第一个循环中,这将起作用:
for (var i = 10.00; i >= ui.value; i -= 0.25) {
$("[data_id=" + Math.floor(i) + "]").show();
}
如果你是.floor() - 那么你应该将它转换为一个整数循环。
答案 1 :(得分:2)
您缺少属性等于选择器的左方括号:
for (var i = 10.00; i >= ui.value; i -= 0.25) {
$("[data_id=" + Math.floor(i) + "]").show();
}
<小时/> 然而,正如其他人所提到的,完全没有理由使用浮点数,因为调用
.floor()
实际上意味着你不必要地在每个div上调用.show()
4次:
for (var i = 10; i >= ui.value; i--) {
$("[data_id=" + i + "]").show();
}
这应该完成你想要的,大约四分之一的工作。
答案 2 :(得分:1)
您的选择器中缺少[
:
$("data_id=" + Math.floor(i) + "]").show();
应该是:
$("[data_id=" + Math.floor(i) + "]").show();
您应该在'
的值附近添加data_id
,因此最终结果应为:
$("[data_id='" + Math.floor(i) + "']").show();
答案 3 :(得分:1)
你应该永远不会依赖浮点算法来迭代/索引变量。它们可能会让您陷入陌生的境地,更糟糕的是,不同的处理器处理浮点会有所不同。您的示例似乎没有浮点的任何副作用,但使用浮点实际上是一种不好的做法。