1

タグに不正な属性を挿入して HTML を無効にすることを除けば、私はこれまでやろうとしていることをしたことがなく、私の仕事の他の分野でこの回答から恩恵を受ける可能性が最も高いです。

問題は、文字列「$(this).attr('num')」から「1」を減算しようとしていることだと思います

これは、最初に "$(this).attr('num')" を整数に変換してから "1" を減算するとうまくいく可能性があります。

私は他の解決策を受け入れます。ありがとう

//

$("#jumpPreviousButton").click(function(){
var imageNumber = $(this).attr('num'); 
  $("#bgImageBox").css({
    "background-image": "url(/galleryImages/worksImage"
    + imageNumber - 1

    +".jpg)"
  }).attr('num', imageNumber - 1);

  return false;}
);

//
4

5 に答える 5

5

あなたが言うように、最初に整数に変換すると役立ちます。parseInt()そのために関数を使用します。:) (またはparseFloat()、浮動小数点数の場合。)

于 2011-01-30T10:38:02.073 に答える
4

parseIntを使用しますが、基数なしでparseIntを使用しないでください

parseInt()関数は文字列を解析し、整数を返します。

署名はparseInt(string, radix)

したがって、あなたの質問に対する答えは次のとおりです。

  var imageNumber = parseInt($(this).attr('num'), 10);

2番目の引数は、parseIntに10進数の記数法を使用するように強制します。

  • ParseInt()のデフォルトの入力タイプは10進数(基数10)です。
  • 数値が「0」で始まる場合、8進数(基数8)であると見なされます。
  • 「0x」で始まる場合は、16進数と見なされます

なぜ?$(this).attr('num')が "08"の場合、基数のないparsIntは0になります。

于 2011-01-30T10:50:21.140 に答える
4

タグに num フィールドを追加するdata()代わりに、jquery の関数を使用しないでください。attr()

  1. Jquery のデータはマークアップを無効にしません
  2. データには任意のデータ型を追加できるため、使用する必要はありませんparseInt

例: HTML:

<html>
    <body>
        <p>hello</p>  
    </body>
</html>

JS:

$('p').data('foo',52);
var val = $('p').data('foo');
alert(val);
$('p').data('foo', val + 1);
alert($('p').data('foo'));

これによりアラートが表示さ52れ、次に53. ここでデモを見ることができます。

于 2011-01-30T11:02:51.903 に答える
3
(parseInt(imageNumber) - 1)

数値が整数の場合。

于 2011-01-30T10:37:22.033 に答える
3

parseInt() 関数はあなたの友達です ;)

var imageNumber = parseInt($(this).attr('num')); 
于 2011-01-30T10:38:03.857 に答える