Konvertieren Sie eine Zeichenfolge in eine Zahl und fügen Sie eine hinzu


94

Ich möchte den Wert, den ich von der ID erhalte, in eine Zahl umwandeln und eine hinzufügen und dann den neuen Wert an die dosomething()zu verwendende Funktion übergeben. Als ich dies versuchte und der Wert eins ist, bekomme ich 11 zurück, nicht 2.

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

Antworten:


189

Angenommen, Sie sind korrekt und Ihre ID ist eine richtige Nummer (ohne anderen Text), sollten Sie die ID analysieren und dann eine hinzufügen:

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

doSomething(currentPage);

1
@Justin Niessner, Sie können auch einfach + 1am Ende der ersten Zeile einen Vorgang ausführen, anstatt einen ++Vorinkrementierer in einer zweiten Zeile zu verwenden, um kompakter zu sein.
Chris Snowden

@ Chris - Sie könnten, aber ich wollte, dass das Beispiel klar macht, welche Operation zuerst stattfand.
Justin Niessner

@ Justin Niessner, fair genug. Klammern können auch zur Verdeutlichung der Ausführungsreihenfolge beitragen. +1 für eine klare, schnelle Antwort. Wetten Sie mich einfach darauf.
Chris Snowden

@Niklas, siehe meine Antwort für die einzeilige Option in Klammern.
Chris Snowden

@ JustinNiessner Danke!
Yohannan_sobin

11

Haben Sie versucht, es ein bisschen umzudrehen?

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

sortiere es jetzt war keine Zahl mit <div drin, aber ich bekomme jetzt 11 nicht 2, wenn der Wert 1 ist, also wird es nicht hinzugefügt 1 + 1 = 2
Niklas

8

Ich glaube, Sie sollten 1 hinzufügen, nachdem Sie es an parseInt übergeben haben

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

http://jsfiddle.net/GfqMM/



5

Analysieren Sie die ID wie eine Zeichenfolge und fügen Sie sie hinzu.

z.B

$('.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

Ich habe dies in einer ähnlichen Situation, um zur nächsten Seite wie dieser zu gelangen:

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

Sie sollten in der Lage sein, Klammern hinzuzufügen, um das zu erreichen, was Sie möchten:

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

5

Sie müssen die ID analysieren, bevor Sie 1 hinzufügen

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

4

Die einfachste Lösung besteht darin, Änderungen vorzunehmen

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

zu:

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

Richtig, das ist das Einfachste und es funktioniert perfekt.
Cssyphus

2

Die parseInt-Lösung ist der beste Weg, da klar ist, was passiert.

Der Vollständigkeit halber ist zu erwähnen, dass dies auch mit dem Operator + erfolgen kann

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


0

ein schöner Weg von http://try.jquery.com/levels/4/challenges/16 :

Hinzufügen eines + vor dem String ohne Verwendung von parseInt und parseFloat und radix und Fehler, denen ich wegen fehlender radix-Parameter ausgesetzt war

Stichprobe

var number= +$('#inputForm').val();

0
var first_value = '2';
// convert this string value into int
parseInt(first_value);

0

Einfache und beste Lösung ist so. Nehmen Sie einen String in eine Variable und konvertieren Sie ihn dann mit der folgenden parseInt () -Methode.

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

Die Methode parseInt () gibt die Nummer wie folgt zurück: 921795. Danach können Sie Ihrem Wert eine beliebige Nummer hinzufügen.

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


Diese Antwort wurde bereits mehrfach gegeben. Wie ist diese Antwort anders / besser?
André Kool
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.