比较属性源中的整数

Compare integer in attribute source

本文关键字:整数 属性 比较      更新时间:2023-09-26

我有一个左箭头,当点击时应该减少文件名,以便加载前一张图片。

我认为使用带有基数的parseint会这样做(注释掉),但如果它被证明是NAN,我使用字符串替换,但它仍然不起作用。

我错过了什么吗?

$('#lar').on("click", function() {
    /*var num = parseInt( $('#main-img').attr('src'),  10);
    if (num > 0) {*/
    var num = $('#main-img').attr('src').replace(/'d+/, '');
    if (num > 0) {
        $('#main-img').attr('src', $('#main-img').attr('src').replace(/'d+/, function(val) {
            return parseInt(val) - 1;
        }));
    }
});

谢谢。

代码中的问题:

  1. 您的regex不正确
  2. 需要将提取的字符串强制转换为numbers

您没有使用regex提取数字。使用下面的regex从字符串中提取数字。

var num = $('#main-img').attr('src').match(/('d+)/)[1];

您需要使用parseInt将字符串解析为整数。否则,num > 0条件将永远不满足。

var num = parseInt($('#main-img').attr('src').match(/('d+)/)[1], 10);
//        ^^^^^^^^^                                             ^^^^^

var str = 'abc123';
var num = str.match(/('d+)/)[1];
document.write('num= ' + num);
document.write('<br />');
document.write('<br />');
document.write(typeof num);
document.write('<br />');
document.write(typeof parseInt(num, 10));