मैं स्ट्रिंग में वापस आने वाले मान में जावास्क्रिप्ट (jquery) के साथ एक पूर्णांक मान कैसे जोड़ूं?


91

मेरे पास एक सरल HTML ब्लॉक है जैसे:

<span id="replies">8</span>

Jquery के उपयोग से मैं मान (8) में 1 जोड़ने का प्रयास कर रहा हूं।

var currentValue = $("#replies").text();
var newValue = currentValue + 1;
$("replies").text(newValue);

जो हो रहा है वह ऐसा दिखाई दे रहा है:

81

फिर

811

9 नहीं, जो सही उत्तर होगा। मैं क्या गलत कर रहा हूं?

जवाबों:


186

यदि यह रूपांतरण नहीं कर सकता है, तो parseInt () इसे टाइप पूर्णांक होने के लिए बाध्य करेगा, या NaN (संख्या नहीं) होगा।

var currentValue = parseInt($("#replies").text(),10);

दूसरा पैरामिटर (मूलांक) सुनिश्चित करता है कि इसे दशमलव संख्या के रूप में पार्स किया गया है।


10
ParseInt () से सावधान रहें, यह "010" को 9 के रूप में पहचानता है (एक शून्य के साथ अग्रणी मूल्यों को अष्टक के रूप में पार्स किया जाता है)।
१५:३६ बजे माइटी जूल

3
Bleh, 8 के रूप में "010"
पर्स

7
@ जैकोब रीकिन: चूंकि यह उपयोगी था, इसलिए मैंने उसे एक और +1 दिया। यदि आप एक बेहतर जवाब के बारे में जानते हैं, तो यह एक दया है जिसे आपने इसे साझा नहीं किया है।
एवेज़

1
यह करता है, जब तक कि यह एक अग्रणी शून्य का पता नहीं लगाता है, तब यह अष्टाधारी बन जाता है। उपयोगकर्ता इनपुट स्वीकार करते समय एक साधारण गड़बड़।
डायोडस - जेम्स मैकफर्लेन

1
यह तब तक ठीक काम करता है जब तक आप दूसरे पैरामीटर का उपयोग करके मूलांक को निर्दिष्ट करते हैं: parseInt("010", 10)दस लौटाता है।
जहारॉय

29

Parse int वह उपकरण है जिसका उपयोग आपको यहां करना चाहिए, लेकिन किसी भी उपकरण की तरह इसे सही तरीके से उपयोग किया जाना चाहिए। ParseInt का उपयोग करते समय आपको सही आधार का उपयोग करने के लिए हमेशा मूलांक पैरामीटर का उपयोग करना चाहिए

var currentValue = parseInt($("#replies").text(),10);

27

पूर्णांक को इसके विपरीत के बजाय एक स्ट्रिंग में परिवर्तित किया जा रहा है। तुम्हें चाहिए:

var newValue = parseInt(currentValue) + 1

12

IE में parseInt ने मेरे लिए काम नहीं किया। तो मैं बस एक चर के रूप में आप चाहते हैं कि चर पर इस्तेमाल किया।

var currentValue = $("#replies").text();
var newValue = +currentValue + 1;
$("replies").text(newValue);

4

.Js की अष्टाध्यायी व्याख्या के संबंध में - मैंने अभी इसका उपयोग किया है ...

parseInt(parseFloat(nv))

और अग्रणी शून्य के साथ परीक्षण के बाद, सही प्रतिनिधित्व के साथ हर बार वापस आया।

उम्मीद है की यह मदद करेगा।




1
var month = new Date().getMonth();
var newmon = month + 1;
$('#month').html((newmon < 10 ? '0' : '') + newmon );

मैंने बस आपके महीने की समस्या को ठीक कर दिया है, getMonth सरणी 0 से 11 तक शुरू होती है।


1

आप अपने लिए चर को संख्या में बदलने के लिए जावास्क्रिप्ट को मजबूर करने के लिए चर को 1 से गुणा कर सकते हैं और फिर इसे अपने दूसरे मूल्य में जोड़ सकते हैं। यह काम करता है क्योंकि गुणा अधिक लोड नहीं है। कुछ लोग कह सकते हैं कि यह पार्सइंट की तुलना में कम स्पष्ट है, लेकिन यह ऐसा करने का एक तरीका है और इसका अभी तक उल्लेख नहीं किया गया है।


0

बस, पाठ मान से पहले एक प्लस चिह्न जोड़ें

var newValue = +currentValue + 1;

-1

आप जावास्क्रिप्ट में स्ट्रिंग को पूर्णांक में बदलने के लिए parseInt () विधि का उपयोग कर सकते हैं

आप कोड को इस तरह बदलें

$("replies").text(parseInt($("replies").text(),10) + 1);

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