2013-05-14 4 views
26

मेरे पास इसमें एक स्ट्रिंग सामग्री के साथ एक div है। सामग्री एक चर में संग्रहीत नहीं है और मैं इस div में पाठ के अंतिम चरित्र को हटाना चाहता हूं। कोई मदद कृपया?जावास्क्रिप्ट: किसी div या स्ट्रिंग से अंतिम वर्ण को कैसे निकालें?

और जानकारी:


मैं एक पाठ क्षेत्र है, और पाठ क्षेत्र में पाठ प्रवेश करते समय, पाठ बड़े लिखित रूप में एक div में दिखाई देता है। जब उपयोगकर्ता बैक-स्पेस कुंजी हिट करता है, तो मैं चाहता हूं कि div में अंतिम वर्ण हटा दिया जाए। मैं मुख्य रूप से इसे प्राप्त करने के लिए jQuery का उपयोग कर रहा हूँ।

$(document).ready(function(){ 
    $("#theInput").focus(); //theInput is the text field 

    $('#theInput').on('keypress', printKeyPress); 

    function printKeyPress(event) 
    { 
     //#mainn is the div to hold the text 
     $('#mainn').append(String.fromCharCode(event.keyCode)); 
     if(event.keyCode ==8) //if backspace key, do below 
     { 
      $('#mainn').empty(); //my issue is located here...I think 
     } 
    } 

}); 

मैं $('#mainn').text.slice(0,-1);

मैं भी एक चर में #theInput का मूल्य भंडारण और यह तो मुद्रण की कोशिश की है की कोशिश की है, लेकिन यह काम नहीं किया: यहाँ मेरी कोड है। कोई विचार ?

+0

आप इनपुट में मूल्य इनपुट क्यों नहीं डालते? – jarvanJiang

+0

बस सबकुछ सीखने की कोशिश कर रहा है। :) –

+0

महान सवाल - मुझे स्ट्रिंग से वर्णों को ट्रिम करने के लिए कई सारे जवाब मिल गए। आपने खोज के साथ इसे खोजने में मेरी सहायता करने के लिए अपना प्रश्न अच्छी तरह से कहा। धन्यवाद! – Jason

उत्तर

57
$('#mainn').text(function (_,txt) { 
    return txt.slice(0, -1); 
}); 

डेमो -->http://jsfiddle.net/d72ML/8/

+7

'टेक्स्ट()' को दो बार कॉल न करें, अनावश्यक रूप से: '$ ('# mainn')। टेक्स्ट (फ़ंक्शन (i, टी) {वापसी t.slice (-1);});' –

+0

कोई सुझाव नहीं काम कर रहे हैं मेरे लिए। –

+2

मैंने इस मुद्दे को समझ लिया है। कुछ कारणों से टेक्स्ट बॉक्स में से निष्पादित होने पर बैकस्पेस कुंजीकोड पंजीकृत नहीं होता है। आपके द्वारा सुझाए गए कोड पूरी तरह से काम करते हैं, यह सिर्फ मेरा पिछला कोड गैर-कार्यात्मक है। धन्यवाद: डी –

6

यू यकीन है कि यू ही अंतिम वर्ण निकालना चाहते हैं। क्या होगा यदि उपयोगकर्ता शब्द के बीच से बैकस्पेस दबाएं .. फ़ील्ड से मूल्य प्राप्त करना और divs html को प्रतिस्थापित करना बेहतर है। कुंजीपटल पर

$("#div").html($("#input").val()); 
+0

मैंने इसे एक विकल्प के रूप में माना है, लेकिन कभी भी मध्य से बैकस्पेसिंग के बारे में सोचा नहीं! सुझाव के लिए धन्यवाद: डी –

संबंधित मुद्दे