javascript - 在 javascript/jQuery 中将字符串转换为数字

标签 javascript jquery

一直在尝试将以下内容转换为数字:

<button class="btn btn-large btn-info" data-votevalue="1">
    <strong>1</strong>
</button>
var votevalue = parseInt($(this).data('votevalue'));

我也试过 Number() 但在检查结果时我仍然得到 NaN。我做错了什么?

完整代码如下:

<div class="span7" id="button-group">
    <div class="btn-group">
        <button class="btn btn-large btn-info" data-votevalue="1"><strong>1</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="2"><strong>2</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="3"><strong>3</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="4"><strong>4</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="5"><strong>5</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="6"><strong>6</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="7"><strong>7</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="8"><strong>8</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="9"><strong>9</strong></button>
        <button class="btn btn-large btn-info" data-votevalue="10"><strong>10</strong></button>
    </div>
</div>
$('#button-group button').each(function() {
    $(this).click(function() {
        $(this).addClass('active');
        var votevalue = parseInt($(this).data('votevalue'));
        var filename = $('.mainimage').data('filename');
        var votes = parseInt($('.mainimage').data('numvotes'));
        var totalscore = parseInt($('.mainimage').data('totalscore'));
        $.ajax({
            type: 'POST',
            url: 'index.php/?category=vote',
            data: {
                "votevalue": votevalue,
                "filename": filename
            },
            success: function() {
                votes++;
                alert(votes);
                var average = ((totalscore + votevalue) / votes);
                $('#vote-incremenet').html(votes);
                $('#display-average').html(average);
                $('#display-average').show();
                $('#button-group button').each(function(){
                    $(this).unbind('click');
                });
            }
        }); // end ajax
    }); // end click
}); // end each

最佳答案

这听起来像是您代码中的 this 不是指您的 .btn 元素。尝试使用选择器显式引用它:

var votevalue = parseInt($(".btn").data('votevalue'), 10);

另外,不要忘记基数。

关于javascript - 在 javascript/jQuery 中将字符串转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12839567/

相关文章:

javascript - 对 GraphQL 查询进行随机排序

php - 如何使用 JavaScript 或 PHP 在运行时更改 HTML 元素的 CSS 属性?

jquery - TypeScript 与 Jquery

asp.net-mvc - 从下拉列表中选择的值不会从 jquery 对话框中发布

javascript - 跨多个文本区域的总字数和字符数

javascript - 空事件会减慢 Javascript 处理速度吗?

javascript - 删除重置按钮验证

javascript - PHP 和 JavaScript

javascript - 如何让Intro.js选择页面加载后动态生成的元素

javascript - 剧作家 - 登录表单、输入和提交点击的问题