4

fordivを表示するためにこのループを使用しようとしています。しかし、jQueryライブラリから奇妙なエラーが発生します。

エラー:構文エラー、認識されない式:= 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();
}
4

4 に答える 4

7

最初のループで [ を忘れましたが、これでうまくいきます:

for (var i = 10.00; i >= ui.value; i -= 0.25) {
    $("[data_id=" + Math.floor(i) + "]").show();
}

いずれにせよ、数値を .floor() で処理している場合は、これを整数ループに変換する必要があります。

于 2012-09-16T10:14:55.820 に答える
2

属性 equals セレクターの左角括弧がありません。

for (var i = 10.00; i >= ui.value; i -= 0.25) {
    $("[data_id=" + Math.floor(i) + "]").show();
}


ただし、他の人が述べたように、これにフロートを使用する理由はまったくありませ.floor().show().

for (var i = 10; i >= ui.value; i--) {
    $("[data_id=" + i + "]").show();
}

これは、作業の約 4 分の 1 で、まさにあなたが望むことを達成するはずです。

于 2012-09-16T10:15:20.250 に答える
1

[ここのセレクターにa がありません:

$("data_id=" + Math.floor(i) + "]").show();

次のようになります。

$("[data_id=" + Math.floor(i) + "]").show();

おそらく'の値も追加する必要data_idがあるため、最終的な結果は次のようになります。

$("[data_id='" + Math.floor(i) + "']").show();
于 2012-09-16T10:15:54.150 に答える
1

反復/インデックス変数を浮動小数点演算に頼るべきではありません。奇妙な状況に陥る可能性があり、さらに悪いことに、プロセッサが異なれば浮動小数点の処理も異なります。あなたの例には浮動小数点の副作用はないようですが、浮動小数点を使用することは本当に悪い習慣です。

于 2012-09-16T10:16:44.227 に答える