jQuery:在元素内部添加一个数字

时间:2010-03-26 01:20:58

标签: javascript jquery

我正在尝试使用jQuery在p元素内的数字中添加一个,但它不起作用。

$(document).ready(function() {
            function addOne() {
                var number  =   $('p').html();
                return number++;
            }

            $('p').text(addOne());
        });

3 个答案:

答案 0 :(得分:5)

您需要首先将数字解析为Int,否则JavaScript会将其视为字符串,而 concatinate 则将其视为。

此外,您希望函数返回数字+ 1,或至少返回++数字,否则您在返回后递增,而不是实际获得修改后的值。

试试这个:

$(document).ready(function() {
    function addOne() {
        var number  =   parseInt($('p').html());
        return number + 1;
    }
    $('p').text(addOne());
});

答案 1 :(得分:3)

请改为尝试:

$(function(){
  $('p').html(function(i, currentHTML){
    return +currentHTML + 1;
  });
});

原始代码有两个错误:

  1. HTML需要解析为整数。执行此操作的正确方法是使用parseInt(html, 10)(解析为基数为10的整数)。如果您知道HTML包含的内容,则简写方式为+html

  2. addOne函数返回number++,它应该真正返回number + 1++number。 (后一个示例在返回之前递增number 。)

  3. 上面更正的代码在jQuery 1.4(documentation)中使用了新的.html()语法。如果您使用的是jQuery 1.3.x或更早版本,则可以使用较旧的.html()语法并修复已注明的错误:

    $(function(){
      function addOne(){
        var number = +$('p').html();
        return number + 1;
      }
      $('p').html(addOne());
    });
    

答案 2 :(得分:0)

尝试添加parseInt

var number = parseInt($('p').html());