文字列を数値に変換して追加します


94

IDから取得した値を数値に変換して1に追加し、新しい値をdosomething()関数に渡して使用します。私がこれを試したところ、値は1ではなく2でした。

$('.load_more').live("click",function() { // When user clicks
    var newcurrentpageTemp = $(this).attr("id") + 1;// Get id from the hyperlink
    alert(parseInt(newcurrentpageTemp));
    dosomething();
});

回答:


189

あなたが正しく、IDが適切な数値(他のテキストなし)であると仮定すると、IDを解析してから、IDを追加する必要があります。

var currentPage = parseInt($(this).attr('id'), 10);
++currentPage;

doSomething(currentPage);

1
@Justin Niessner、2行目でプリインクリメンタ+ 1を使用して++よりコンパクトにするのではなく、最初の行の最後でa を実行することもできます。
Chris Snowden

@Chris-できますが、最初にどの操作が行われていたかを明確にするために例を示したかったのです。
Justin Niessner、2011年

@ジャスティン・ニースナー、十分公正。ブラケットは、実行の順序を明確にするのにも役立ちます。+1でも明確な回答が得られます。それに賭けてください。
Chris Snowden

@Niklas、括弧で囲まれた1行のオプションについては私の回答を参照してください。
Chris Snowden、

@JustinNiessnerありがとうございます!
yohannan_sobin 2017

11

少しフリップフロップしてみましたか?

var newcurrentpageTemp = parseInt($(this).attr("id"));
newcurrentpageTemp++;
alert(newcurrentpageTemp));

並べ替え今は<divが含まれている数値ではありませんでしたが、値が1の場合は2ではなく11を取得するため、追加されません1 + 1 = 2
Niklas

8

parseInt 渡したに1を追加する必要があると思います

$('.load_more').live("click",function() { //When user clicks
          var newcurrentpageTemp = parseInt($(this).attr("id")) + 1;   
          alert(newcurrentpageTemp);
          dosomething();
      });

http://jsfiddle.net/GfqMM/



5

文字列と同じようにIDを解析してから追加します。

例えば

$('.load_more').live("click",function() { //When user clicks
    var newcurrentpageTemp = parseInt($(this).attr("id")) + 1;//Get the id from the hyperlink
    alert(newcurrentpageTemp);
    dosomething();
});

5

私はこのような次のページに移動するための同様の状況でこれを機能させています:

$("#page_next").click(function () {
    $("#pageNumber").val(parseInt($("#pageNumber").val()) + 1);
    submitForm(this);
    return false;
});

ブラケットを追加して、次のような結果を得ることができるはずです。

var newcurrentpageTemp = (parseInt($(this).attr("id"))) + 1;//Get the id from the hyperlink

5

追加する前にIDを解析する必要があります1

 $('.load_more').live("click",function() { //When user clicks
              var newcurrentpageTemp = parseInt($(this).attr("id"));
              newcurrentpageTemp ++;
              dosomething(newcurrentpageTemp );
 });

4

ここで最も簡単な解決策は、変更することです

  var newcurrentpageTemp = $(this).attr("id") + 1;//Get the id from the hyperlink

に:

  var newcurrentpageTemp = (($(this).attr("id")) * 1) + 1;//Get the id from the hyperlink

正解です。これが最も簡単で、完全に機能します。
cssyphus 2013

2

parseIntソリューションは、何が起こっているのかが明らかであるため、最善の方法です。

完全を期すため、これは+演算子でも実行できることを言及する価値があります

$('.load_more').live("click",function() { //When user clicks
  var newcurrentpageTemp = +$(this).attr("id") + 1; //Get the id from the hyperlink
  alert(newcurrentpageTemp);
  dosomething();
});




0

シンプルで最良のソリューションはこのようなものです。1つの変数で文字列を取得し、次にparseInt()メソッドを使用して以下のように変換します。

var stringValue = '921795';
var numValue = parseInt(stringValue);

parseInt()メソッドは、この921795のような数値を返します。この後、値に任意の数値を追加できます。

http://www.phpcodify.com/convert-string-to-integer-using-jquery-parseint/


この答えはすでに複数回与えられています。この答えはどのように異なる/より良いですか?
アンドレ・クール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.