Преобразовать строку в число и добавить один

87

Я хочу повернуть значение, которое я получаю из идентификатора, в число и добавить его к нему, а затем передать новое значение в используемую функцию 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();
});
  • 0
    пожалуйста, вставьте HTML
Теги:

12 ответов

183
Лучший ответ

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

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

doSomething(currentPage);
  • 6
    +1, потому что вы всегда должны использовать основание.
  • 1
    @Justin Niessner, Вы также можете просто сделать + 1 в конце первой строки, вместо того, чтобы использовать предварительный инкремент ++ во второй строке, чтобы сделать его более компактным.
Показать ещё 5 комментариев
10

Вы пробовали немного сфотографировать его?

var newcurrentpageTemp = parseInt($(this).attr("id"));
newcurrentpageTemp++;
alert(newcurrentpageTemp));
  • 0
    сортировать его теперь не было числом, в котором было <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/

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

http://jsfiddle.net/GfqMM/

5

Вам нужно проанализировать идентификатор перед добавлением 1

 $('.load_more').live("click",function() { //When user clicks
              var newcurrentpageTemp = parseInt($(this).attr("id"));
              newcurrentpageTemp ++;
              dosomething(newcurrentpageTemp );
 });
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();
});
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
  • 0
    Правильно, вы - это самое простое, и это прекрасно работает.
4

У меня это работает в аналогичной ситуации для перехода на следующую страницу следующим образом:

$("#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
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();
});
1
var sVal = '234';
var iNum = parseInt(sVal); //Output will be 234.

http://www.jquerybyexample.net/2013/02/jquery-convert-string-to-integer.html

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

отличный способ от http://try.jquery.com/levels/4/challenges/16:

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

Пример

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню