Jquery 如何在字符串上执行减法

Jquery 如何在字符串上执行减法,jquery,string,subtraction,Jquery,String,Subtraction,除了在标记中插入非法属性并使我的HTML无效之外,我从来没有做过我以前尝试做的事情,并且很可能会从我工作的其他方面受益 我想问题是我试图从字符串$this.attr'num'中减去1 如果我首先将$This.attr'num'转换为一个整数,然后从中减去1,这可能会起作用 我愿意接受任何其他解决方案。谢谢 // $("#jumpPreviousButton").click(function(){ var imageNumber = $(this).attr('num'); $("#bgI

除了在标记中插入非法属性并使我的HTML无效之外,我从来没有做过我以前尝试做的事情,并且很可能会从我工作的其他方面受益

我想问题是我试图从字符串$this.attr'num'中减去1

如果我首先将$This.attr'num'转换为一个整数,然后从中减去1,这可能会起作用

我愿意接受任何其他解决方案。谢谢

//

$("#jumpPreviousButton").click(function(){
var imageNumber = $(this).attr('num'); 
  $("#bgImageBox").css({
    "background-image": "url(/galleryImages/worksImage"
    + imageNumber - 1

    +".jpg)"
  }).attr('num', imageNumber - 1);

  return false;}
);

//
如果数字是整数


如果数字是整数。

如您所说,首先将其转换为整数会有所帮助。使用parseInt函数进行此操作:如果它是一个浮点数,则使用parseFloat。

正如您所说,首先将其转换为整数会有所帮助。使用parseInt函数进行此操作:如果是浮点数,则使用parseFloat。

parseInt函数是您的朋友

var imageNumber = parseInt($(this).attr('num')); 

parseInt函数是您的朋友

var imageNumber = parseInt($(this).attr('num')); 
使用parseInt,但不要在没有 parseInt函数解析字符串并返回整数

签名是parseIntstring,以基数表示

因此,你的问题的答案是:

  var imageNumber = parseInt($(this).attr('num'), 10);
第二个参数强制parseInt使用以十为基数的编号系统

ParseInt的默认输入类型是十进制10。 如果数字以0开头,则假定为八进制8。 如果它以0x开头,则假定为十六进制 为什么??如果$this.attr'num'为08,则不带基数的parsInt将变为0

请使用parsInt,但不要使用不带基数的parsInt parseInt函数解析字符串并返回整数

签名是parseIntstring,以基数表示

因此,你的问题的答案是:

  var imageNumber = parseInt($(this).attr('num'), 10);
第二个参数强制parseInt使用以十为基数的编号系统

ParseInt的默认输入类型是十进制10。 如果数字以0开头,则假定为八进制8。 如果它以0x开头,则假定为十六进制 为什么??如果$this.attr'num'为08,则不带基数的parsInt将变为0

为什么不使用jquery函数而不是attr将num字段添加到标记中呢

Jquery的数据不会使您的标记无效 您可以在数据中添加任何数据类型,因此无需使用parseInt 例如: HTML:

这将向52和53发出警报。您可以看到一个演示。

为什么不使用jquery的函数而不是attr将num字段添加到标记中呢

Jquery的数据不会使您的标记无效 您可以在数据中添加任何数据类型,因此无需使用parseInt 例如: HTML:


这将向52和53发出警报。你可以看到一个演示。

wow。看起来很奇怪,它会像那样默认为octal,但是对于我来说,编程语言的很多事情有时似乎很奇怪。。。相信我,10年前我花了4天时间研究这个问题,当时这被认为是一个bug,而不是一个特性……哇。看起来很奇怪,它会像那样默认为octal,但是对于我来说,编程语言的很多事情有时似乎很奇怪。。。相信我,10年前我花了4天时间解决这个问题,当时这被认为是一个bug,而不是一个特性…谢谢你的时间,Golez。我也会记住parseFloat以备将来参考谢谢你的时间Golez。我也会记住parseFloat,以备将来参考Hanks Marek。我确信有一些函数用于此,但不确定是什么,因为我是Javascript和JQueryTanks Marek的新手。我确信有一些函数可以实现这一点,但不确定我是Javascript和jquery新手。如果你不想太多地从int转换,请看下面我的答案,它使用jquery的数据方法。如果你不想太多地从int转换,请看下面我的答案,它使用jquery的数据方法OK,这真的很有趣。使用attr可以让我看到HTML中的数字。数据在哪里存储信息?在javascript对象上,因此不会使htmlOK无效,这非常有趣。使用attr可以让我看到HTML中的数字。数据在哪里存储信息?在javascript对象上,因此不会使html无效
$('p').data('foo',52);
var val = $('p').data('foo');
alert(val);
$('p').data('foo', val + 1);
alert($('p').data('foo'));