20

次の変数があります。

pageID = 7

リンクでこの番号を増やしたい:

$('#arrowRight').attr('href', 'page.html?='+pageID);

したがって、これは7を出力します。リンクを追加して8と言うようにしたいと思います。しかし、+1を追加すると:

$('#arrowRight').attr('href', 'page.html?='+pageID+1);

次の出力が得られます: 8 ではなく 1.html?=71。

この番号を pageID+1 にインクリメントするにはどうすればよいですか?

4

8 に答える 8

34

これを試して:

parseInt(pageID, 10) + 1

あなたのコードに一致:

$('#arrowRight').attr('href', 'page.html?='+ (parseInt(pageID, 10) + 1));
于 2012-07-02T13:51:48.343 に答える
5

+両方の引数が数値であり、少なくとも 1 つが数値でない場合に異なる結果を与える、文字列と数値の両方に対して有効な演算子です。考えられる回避策の 1 つは、数値コンテキストのみを持ち、同じ数学的な結果を返す演算子を使用すること-です。文字列であるかどうかに関係なく、 の数値some_var - -1に 1 を加えることと常に同じになります。some_var

$('#arrowRight').attr('href', 'page.html?='+ (pageID - -1));
于 2012-07-02T14:05:22.917 に答える
2

文字列ではなく、整数である必要があります。これを試して:

pageID = parseInt(pageID)+1;

それからあなたはすることができます

$('#arrowRight').attr('href', 'page.html?='+pageID);
于 2012-07-02T13:52:32.737 に答える
1

単に、$('#arrowRight').attr('href', 'page.html?='+(pageID+1));

括弧は、文字列連結の前に最初に計算を行います。

于 2012-07-02T13:54:41.220 に答える
1

追加を括弧で囲んで操作の順序を変更するだけです。pageID がすでに数値の場合、parseInt() は必要ありません。

$('#arrowRight').attr('href', 'page.html?='+(pageID+1));

デモ

于 2012-07-02T13:54:44.430 に答える
1

let pageId = '7'
pageId++
console.log(pageId)

最近では、pageID++ だけが必要です。

于 2016-06-23T03:13:08.613 に答える
0

pageID が数値である限り、これで十分です。

$('#arrowRight').attr('href', 'page.html?='+(pageID+1));

あなたが見ていた問題は、JavaScript が通常左から右の順序で実行されるため、左側の文字列によって が+連結子と見なされ、文字列に 7 が追加され、次に を含む文字列に 1 が追加されることです。 7。

于 2012-07-02T13:55:56.153 に答える