source

javascript/jQuery에서 문자열을 숫자로 변환하는 중

ittop 2023. 10. 4. 22:58
반응형

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);

또한, 기수도 잊지 마세요.

아래 코드와 같이 parseInt(string, radix)를 사용하여 문자열 값을 정수로 변환할 수 있습니다.

var votevalue = parseInt($('button').data('votevalue'));
​

데모

이것은 오래된 게시물이지만 간단한 기능으로 코드를 더 쉽게 읽을 수 있고 jQuery chaining 코드 스타일을 유지할 수 있다고 생각했습니다.

String.prototype.toNum = function(){
    return parseInt(this, 10);
}

jQuery와 함께 사용할 수 있습니다.

var padding_top = $('#some_div').css('padding-top'); //string: "10px"
var padding_top = $('#some_div').css('padding-top').toNum(); //number: 10`

또는 다른 것과 함께String개체:

"123".toNum(); //123 (number)`

사용자의 경우 다음을 사용합니다.

var votevalue = +$(this).data('votevalue');

자바스크립트에서 문자열을 숫자로 변환하는 방법이 있습니다.

가장 좋은 방법:

var str = "1";
var num = +str; //simple enough and work with both int and float

다음을 수행할 수도 있습니다.

var str = "1";
var num = Number(str); //without new. work with both int and float

아니면

var str = "1";
var num = parseInt(str,10); //for integer number
var num = parseFloat(str); //for float number

하지 않음:

var str = "1";
var num = new Number(str);  //num will be an object. typeof num == 'object'

구문 분석 사용예를 들어 특수한 경우에만 해당됩니다.

var str = "ff";
var num = parseInt(str,16); //255

var str = "0xff";
var num = parseInt(str); //255

앞에 '+'만 쓰시면 됩니다.$(this). 그러면 문자열이 숫자로 변환되므로 다음과 같습니다.

var votevalue = +$(this).data('votevalue');

아 그리고 나는 사용하는것을 추천합니다.closest()혹시 모르니 방법 :)

var votevalue = +$(this).closest('.btn-group').data('votevalue');

뭔가.this당신이 생각하는 것이 아닌 다른 것을 말하는 것입니다.어떤 맥락에서 사용하고 계십니까?

this키워드는 일반적으로 이벤트 handler의 콜백 함수 내에서만 사용되며, 요소 집합을 루프오버하는 경우 또는 유사한 경우에만 사용됩니다.그런 맥락에서 특정 DOM 요소를 가리키며, 사용자가 수행하는 방식으로 사용할 수 있습니다.

특정 버튼(콜백 또는 루프 외부)에만 액세스하고 다른 요소를 사용하지 않는 경우btn-info클래스, 당신은 다음과 같은 것을 할 수 있습니다.

parseInt($(".btn-info").data('votevalue'), 10);

요소에 ID를 할당하고 이를 사용하여 선택자와 일치하는 요소가 하나인지 확인하려면 보다 안전한 방법으로 선택할 수도 있습니다.

var 문자열 = 123(는 문자열),

parseInt(매개변수는 문자열);

var string = '123';

var int= parseInt(string );

console.log(int);  //Output will be 123.

추가할 수 있습니다.+구문 분석을 사용하지 않고 문자열 앞에Int 및 parseFloat 및 radix, 간단히

샘플:

var votevalue = +$('button').data('votevalue');

alert(typeof(votevalue));

var votevalue = $.map($(this).data('votevalue'), Number);

언급URL : https://stackoverflow.com/questions/12839567/converting-string-to-number-in-javascript-jquery

반응형