use*_*645 65 javascript jquery
试图将以下内容转换为数字:
<button class="btn btn-large btn-info" data-votevalue="1">
<strong>1</strong>
</button>
Run Code Online (Sandbox Code Playgroud)
var votevalue = parseInt($(this).data('votevalue'));
Run Code Online (Sandbox Code Playgroud)
我也尝试了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>
Run Code Online (Sandbox Code Playgroud)
$('#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
Run Code Online (Sandbox Code Playgroud)
Ror*_*san 91
听起来this在你的代码中并不是指你的.btn元素.尝试使用选择器显式引用它:
var votevalue = parseInt($(".btn").data('votevalue'), 10);
Run Code Online (Sandbox Code Playgroud)
另外,不要忘记基数.
Ant*_*ton 48
您可以使用parseInt(string,radix)将字符串值转换为整数,如下面的代码所示
var votevalue = parseInt($('button').data('votevalue'));
?
Run Code Online (Sandbox Code Playgroud)
Sha*_*har 30
虽然这是一篇旧文章,但我认为一个简单的函数可以使代码更具可读性并保持jQuery链代码风格:
String.prototype.toNum = function(){
return parseInt(this, 10);
}
Run Code Online (Sandbox Code Playgroud)
可以与jQuery一起使用:
var padding_top = $('#some_div').css('padding-top'); //string: "10px"
var padding_top = $('#some_div').css('padding-top').toNum(); //number: 10`
Run Code Online (Sandbox Code Playgroud)
或与任何String对象:
"123".toNum(); //123 (number)`
Run Code Online (Sandbox Code Playgroud)
小智 8
你应该先使用"+" $(this).那将把字符串转换为数字,所以:
var votevalue = +$(this).data('votevalue');
Run Code Online (Sandbox Code Playgroud)
哦,我建议使用closest()方法以防万一:)
var votevalue = +$(this).closest('.btn-group').data('votevalue');
Run Code Online (Sandbox Code Playgroud)
var string = 123(是字符串),
parseInt(参数为字符串);
var string = '123';
var int= parseInt(string );
console.log(int); //Output will be 123.
Run Code Online (Sandbox Code Playgroud)
这听起来像是this指你想的其他东西.你在什么情况下使用它?
该this关键字通常只有一个事件处理的回调函数中使用,当你遍历一组元素,或类似的.在该上下文中,它指的是特定的DOM元素,并且可以按照您的方式使用.
如果您只想访问该特定按钮(在任何回调或循环之外)并且没有任何其他使用btn-info该类的元素,您可以执行以下操作:
parseInt($(".btn-info").data('votevalue'), 10);
Run Code Online (Sandbox Code Playgroud)
您还可以为元素分配一个ID,并使用它来选择,如果您想确保只有一个元素与您的选择器匹配,那么这可能是一种更安全的方式.
对于您的情况,只需使用:
var votevalue = +$(this).data('votevalue');
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,有一些方法可以将字符串转换为数字。
最好的方法:
var str = "1";
var num = +str; //simple enough and work with both int and float
Run Code Online (Sandbox Code Playgroud)
您还可以:
var str = "1";
var num = Number(str); //without new. work with both int and float
Run Code Online (Sandbox Code Playgroud)
要么
var str = "1";
var num = parseInt(str,10); //for integer number
var num = parseFloat(str); //for float number
Run Code Online (Sandbox Code Playgroud)
别:
var str = "1";
var num = new Number(str); //num will be an object. typeof num == 'object'
Run Code Online (Sandbox Code Playgroud)
例如,仅对特殊情况使用parseInt
var str = "ff";
var num = parseInt(str,16); //255
var str = "0xff";
var num = parseInt(str); //255
Run Code Online (Sandbox Code Playgroud)