如何对字符串执行减法

发布于 2024-10-15 03:11:54 字数 491 浏览 7 评论 0 原文

除了将非法属性插入标签并使我的 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;}
);

//

Aside from inserting illegal attributes into an tag and invalidating my HTML, I've never done what I am trying to do before and will most likely benefit from this answer in other areas of my work.

I think the problem is I am trying to subtract "1" from a string "$(this).attr('num')"

This might work if I first convert "$(this).attr('num')" into an integer and then subtract "1" from it.

I am open to any other solutions. Thanks

//

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

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

  return false;}
);

//

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

七月上 2024-10-22 03:11:54

正如你所说,首先将其转换为整数会有所帮助。为此,请使用 parseInt() 函数。 :) (如果是浮点数,则使用 parseFloat() 。)

As you say, converting it to integer first will help. Use the parseInt() function for that. :) (Or parseFloat() if it is a floating point number.)

全部不再 2024-10-22 03:11:54

使用 parseInt 但不要使用没有 radix

parseInt() 函数解析一个字符串并返回一个整数。

签名是 parseInt(string, radix)

所以你的问题的答案是:

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

第二个参数强制 parseInt 使用以十为基数的计数系统。

  • ParseInt() 的默认输入类型是十进制(基数为 10)。
  • 如果数字以“0”开头,则假定为八进制(基数为 8)。
  • 如果以“0x”开头,则假定为十六进制,

为什么? 如果 $(this).attr('num') 为“08”,没有基数的 parsInt 将变为 0

use parseInt but don't use parseInt without a radix

The parseInt() function parses a string and returns an integer.

The signature is parseInt(string, radix)

so the answer to your question is:

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

The second argument forces parseInt to use a base ten numbering system.

  • The default input type for ParseInt() is decimal (base 10).
  • If the number begins in "0", it is assumed to be octal (base 8).
  • If it begins in "0x", it is assumed to be hexadecimal

why? if $(this).attr('num') would be "08" parsInt without a radix would become 0

栖竹 2024-10-22 03:11:54

为什么不使用 jquery 的 data() 函数而不是 attr () 将 num 字段添加到您的标记中。

  1. Jquery的数据不会使你的标记失效
  2. 你可以在data中添加任何数据类型,所以不需要使用parseInt

例如:
HTML:

<html>
    <body>
        <p>hello</p>  
    </body>
</html>

JS:

$('p').data('foo',52);
var val = $('p').data('foo');
alert(val);
$('p').data('foo', val + 1);
alert($('p').data('foo'));

这将警告 52,然后警告 53。您可以在此处查看演示。

Why dont you use jquery's data() function instead of attr() to add the num field to your tag.

  1. Jquery's data will not invalidate your markup
  2. You can add any data type in data, so there is no need to use parseInt

For example:
HTML:

<html>
    <body>
        <p>hello</p>  
    </body>
</html>

JS:

$('p').data('foo',52);
var val = $('p').data('foo');
alert(val);
$('p').data('foo', val + 1);
alert($('p').data('foo'));

This will alert 52 and then 53. You can see a demo here.

策马西风 2024-10-22 03:11:54
(parseInt(imageNumber) - 1)

如果数字是整数。

(parseInt(imageNumber) - 1)

if the number is an integer.

塔塔猫 2024-10-22 03:11:54

parseInt() 函数是你的朋友;)

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

parseInt() function is your friend ;)

var imageNumber = parseInt($(this).attr('num')); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文