jQuery / जावास्क्रिप्ट - मैं एक पिक्सेल मान (20px) को एक संख्या मान (20) में कैसे परिवर्तित करूं


101

मुझे पता है कि jQuery में संख्याओं में यूनिट स्ट्रिंग को पार्स करने के लिए एक सहायक विधि है। ऐसा करने के लिए jQuery विधि क्या है?

var a = "20px";
var b = 20;
var c = $.parseMethod(a) + b;

parseInt (ए, 10); NaN लौटाएं अगर एक स्ट्रिंग है
vanduc1102

जवाबों:


184

इसके लिए किसी jQuery की आवश्यकता नहीं है, प्लेन ओल 'जेएस (tm) फिर करेंगे,

parseInt(a, 10);

4
हर रोज़ इम इम लव
जसस्क्रिप्ट

1
यह "20pt" या "20em" के लिए काम नहीं करेगा। parseInt ("20pt") == 20! यह वह सब हो सकता है जो पोस्टर की आवश्यकता है, लेकिन मैं उदाहरण के लिए एक्स ("20 मी") का उपयोग करने में सक्षम होना चाहता हूं और पिक्सल में वास्तविक चौड़ाई वापस पा सकता हूं।
लॉरेंस आई।

2
@lsiden: यह काम करता है। parseInt("20em", 10) === 20और parseInt("20pt", 10) === 20। अपने पसंदीदा ब्राउज़र के कंसोल में या तो अभिव्यक्ति पेस्ट करने के लिए स्वतंत्र महसूस करें, या यह बहुत छोटा उदाहरण देखें । आपके कोड में जो भी समस्या है वह कहीं और है।
एंडी ई

6
एक सिडेनोट, parseIntफ़ंक्शन वास्तव में पूर्णांक वर्णों की एक स्ट्रिंग के अंत में संलग्न किसी भी गैर-पूर्णांक वर्णों की उपेक्षा करेगा। parseInt('234sdfsdf') == 234
क्रिस डब्ल्यू।

3
@AndyE: Isiden कह रहा था कि parseInt समान पिक्सेल मानों में em मान (या pt या अन्य) नहीं बदलेगा, जो कि कुछ लोगों को आवश्यकता हो सकती है।
LeartS

30

अधिक सामान्यतः, parseFloatफ़्लोटिंग-पॉइंट नंबरों को सही ढंग से संसाधित करेगा, जबकि parseIntमहत्वपूर्ण अंकों को चुपचाप खो सकता है:

parseFloat('20.954544px')
> 20.954544
parseInt('20.954544px')
> 20


5
$.parseMethod = function (s)
{
    return Number(s.replace(/px$/, ''));
};

हालाँकि यह jQuery से कैसे संबंधित है, मुझे नहीं पता


0

खुदाई के लिए क्षमा करें, लेकिन:

var bar = "16px";

var foo = parseInt(bar, 10); // Doesn't work! Output is always 16px
// and
var foo = Number(s.replace(/px$/, '')); // No more!

parseInt ('16px', 10); Google Chrome dev कंसोल में मेरे लिए काम करें
थॉमस

-2
$(document).ready(function(){<br>
    $("#btnW1").click(function(){<br>
        $("#d1").animate({<br>
            width: "+=" + x,

        });
    });

जब मैं jquery का उपयोग करके एक पिक्सेल मान के साथ चर x की पहचान करने की कोशिश कर रहा हूँ तो मैंने उद्धरण में + = डाला। चौड़ाई होने के बजाय: '+ = x', जो काम नहीं करता है क्योंकि यह सोचता है कि x संख्या के बजाय एक स्ट्रिंग है। उम्मीद है कि यह मदद करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.