Перетворити рядок на число та додати його


94

Я хочу перетворити значення, яке я отримую від ідентифікатора, на число і додати до нього одне, а потім передати нове значення у dosomething()функцію для використання. Коли я спробував це, і значення одне, я отримую 11, а не 2.

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

Відповіді:


190

Припускаючи, що ви правильні, і ваш ідентифікатор є правильним номером (без будь-якого іншого тексту), вам слід проаналізувати ідентифікатор, а потім додати його до нього:

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

doSomething(currentPage);

1
@Justin Niessner, Ви також можете просто зробити a + 1в кінці першого рядка, а не використовувати ++попередній інкрементатор у другому рядку, щоб бути більш компактним.
Chris Snowden,

@Chris - Ви могли б, але я хотів, щоб на прикладі було зрозуміло, яка операція відбувалась першою.
Джастін Нісснер,

@Justin Niessner, справедливо. Дужки також можуть допомогти уточнити порядок виконання. +1 для чіткої швидкої відповіді. Просто зробіть мені заклад.
Chris Snowden

@Niklas, Подивіться мою відповідь на варіант з одним рядком у дужках.
Кріс Сноуден,

@JustinNiessner Дякую!
yohannan_sobin

11

Ви пробували це трохи перекидати?

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

сортуй, це зараз не було число, в якому було <div, однак я тепер отримую 11 не 2, коли значення дорівнює 1. тому його не додають 1 + 1 = 2
Ніклас

8

Я вважаю, що вам слід додати 1 після передачі його в parseInt

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

http://jsfiddle.net/GfqMM/



5

Проаналізуйте ідентифікатор як рядок, а потім додайте.

напр

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

Вам потрібно проаналізувати ідентифікатор перед додаванням 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

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

хороший спосіб з http://try.jquery.com/levels/4/challenges/16 :

додавання + перед рядком без використання parseInt і parseFloat та radix та помилок, з якими я зіткнувся через відсутність параметра radix

зразок

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


0

Просте і найкраще рішення таке. візьміть рядок в одній змінній, а потім перетворіть його за допомогою методу parseInt (), як показано нижче.

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

Метод parseInt () поверне число, подібне до цього 921795. після цього ви можете додати будь-яке число до свого значення.

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


Цю відповідь уже давали багато разів. Чим ця відповідь відрізняється / краща?
André Kool
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.