jquery只更新数字

发布于 2024-12-05 18:29:49 字数 1008 浏览 0 评论 0原文

我有 (8) 并且我希望它在 8 中添加 +1 或取 -1,而 () 保持不变,当我点击我的love按钮。

$(function() {
    $(".love").click(function() {
        var id = $(this).attr("id");
        var dataString = 'id=' + id;
        var parent = $(this);
        $(this).fadeOut(300);
        $.ajax({
            type: "POST",
            url: "bookmark.php",
            data: dataString,
            cache: false,
            success: function(html) {
                parent.html(html);
                parent.fadeIn(300);
            }
        });
        return false;
    });
});

更新:我忘记了我还需要减小该值,请检查图片以了解详细信息:http://img593.imageshack.us/img593/6128/ss20110921031605.png

所以如果用户点击+,我需要增加该值,如果用户点击 - 我需要减少号码。

因此,如果图标有 +,则具有此

 
如果 - 则具有此
 
PS加减号图标是从div背景生成的

i have <span class="gramatz">(8)</span> and i would like it to add +1 or take -1 from 8, leaving () untouched, when I click my love button.

$(function() {
    $(".love").click(function() {
        var id = $(this).attr("id");
        var dataString = 'id=' + id;
        var parent = $(this);
        $(this).fadeOut(300);
        $.ajax({
            type: "POST",
            url: "bookmark.php",
            data: dataString,
            cache: false,
            success: function(html) {
                parent.html(html);
                parent.fadeIn(300);
            }
        });
        return false;
    });
});

UPDATE: I forgot I need to decrease the value aswell, check the picture for details: http://img593.imageshack.us/img593/6128/ss20110921031605.png

so if user clicks on +, I need to increase the value, if user clicks on - I need to decrease the number.

so if the icon has + it has this <div class="over_img"> </div> and if - it has this <div class="on_img"> </div>
P.S. plus an minus icons are generated from div background

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

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

发布评论

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

评论(3

浅忆 2024-12-12 18:29:49
$('.gramatz').text(function(i, val){
    return '(' + ( +val.replace('(', '').replace(')', '') + 1) + ')';
});

要分解它:

$('.gramatz').text(function(i, val) {
    var num = val.replace('(', '').replace(')', ''); // "8"
    num = +num; // Convert from string to number
    num = num + 1; // add 1, will now be 9
    return '(' + num + ')'; // "(9)"
});

如果你想使用正则表达式,你可以使用这个:

$('.gramatz').text(function(i, val){
    return '(' + ( +val.replace(/[^\d]/g, '') + 1) + ')';
});

这是小提琴: http://jsfiddle .net/gaA2J/


对于您的特定情况,请使用以下内容:

$('.over_img, .on_img').click(function(){
    var amount = $(this).hasClass('over_img') ? 1 : -1 ;
    $('.gramatz').text(function(i, val){
        return '(' + ( +val.replace(/[^\d]/g, '') + amount) + ')';
    });
});

这是小提琴: http://jsfiddle.net/gaA2J/1/

$('.gramatz').text(function(i, val){
    return '(' + ( +val.replace('(', '').replace(')', '') + 1) + ')';
});

To break that down:

$('.gramatz').text(function(i, val) {
    var num = val.replace('(', '').replace(')', ''); // "8"
    num = +num; // Convert from string to number
    num = num + 1; // add 1, will now be 9
    return '(' + num + ')'; // "(9)"
});

If you want to use a regex, you can use this:

$('.gramatz').text(function(i, val){
    return '(' + ( +val.replace(/[^\d]/g, '') + 1) + ')';
});

And here's the fiddle: http://jsfiddle.net/gaA2J/


For your particular case, use this:

$('.over_img, .on_img').click(function(){
    var amount = $(this).hasClass('over_img') ? 1 : -1 ;
    $('.gramatz').text(function(i, val){
        return '(' + ( +val.replace(/[^\d]/g, '') + amount) + ')';
    });
});

And here's the fiddle: http://jsfiddle.net/gaA2J/1/

狼亦尘 2024-12-12 18:29:49

仅显示递增代码:

$(function() {
    $(".love").click(function() {
        $('.gramatz').text($('.gramatz').text().replace(/(\d+)/, function(str, val) {
            return +val + 1;
        }))
    });
});

示例


EDIT

新示例

$(function() {
    $(".love").click(function() {
        var $class = $(this).attr('class'),
            inc = $class.indexOf('minus') === -1 ? 1: -1;

        $('.gramatz').text($('.gramatz').text().replace(/(-?\d+)/, function(str, val) {
            return +val + inc ;
        }))
    });
});

Only the incrementing code is shown:

$(function() {
    $(".love").click(function() {
        $('.gramatz').text($('.gramatz').text().replace(/(\d+)/, function(str, val) {
            return +val + 1;
        }))
    });
});

Example


EDIT

New Example

$(function() {
    $(".love").click(function() {
        var $class = $(this).attr('class'),
            inc = $class.indexOf('minus') === -1 ? 1: -1;

        $('.gramatz').text($('.gramatz').text().replace(/(-?\d+)/, function(str, val) {
            return +val + inc ;
        }))
    });
});
太傻旳人生 2024-12-12 18:29:49

需要使用 .live() 来实现这一点

Needed to use .live() to do the trick

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