if (($(this)[0].value[$(this)[0].value.length - 1] == 'A' || $(this)[0].value[$(this)[0].value.length - 1] == 'P') && collFormat == 18) {
    $(this)[0].value = $(this)[0].value + 'M';
}

मेरे पास 'एम' को समय स्ट्रिंग में जोड़ने के लिए एक jQuery स्क्रिप्ट है उदाहरण के लिए: 'xxx ए' से 'xxx AM'। स्क्रिप्ट IE8, IE9, Firefox में काम करती है लेकिन संगतता मोड में काम नहीं करती है और IE 7. $(this)[0].value[0] IE7 और ब्राउज़र में संगतता मोड में अपरिभाषित है। कृपया वैकल्पिक समाधान प्रदान करें।

अग्रिम धन्यवाद।

0
hungryjackers 16 अप्रैल 2011, 01:35
3
$(this)[0] लिखने का कोई कारण नहीं है।
 – 
SLaks
16 अप्रैल 2011, 01:38
"यह" क्या संदर्भित करता है... यहां आपकी सहायता के लिए कुछ संदर्भ की आवश्यकता है...
 – 
Ryan
16 अप्रैल 2011, 01:38
साथ ही, length कोई विधि नहीं है और इसका jQuery से कोई लेना-देना नहीं है।
 – 
SLaks
16 अप्रैल 2011, 01:39
@SLaks: मुझे क्या लिखना चाहिए! मैं इस विकल्प के बारे में जानता हूं। अगर मैं गलत हूं तो मुझे सही करें। हां, लंबाई कोई विधि नहीं है। पोस्ट करते समय मुझे दूसरा विचार देना चाहिए। शुक्रिया।
 – 
hungryjackers
21 अप्रैल 2011, 01:28
1
$(this)[0] this के समान है।
 – 
SLaks
21 अप्रैल 2011, 05:12

2 जवाब

सबसे बढ़िया उत्तर

IE में [n] का उपयोग करके आप एक स्ट्रिंग से अलग-अलग वर्ण प्राप्त नहीं कर सकते। इसके बजाय, आपको charAt पर कॉल करना चाहिए:

this.value.charAt(this.value.length - 1)
0
SLaks 16 अप्रैल 2011, 01:38

मुझे लगता है कि आप इस तरह कुछ ढूंढ रहे हैं:

$(this).val(function(i, oldVal) { // set the element's value to the return value of this function
    var lastChar = oldVal.substr(-1); // get the last character of the current value

    return oldVal + // have the original value with something added
               (
                   (lastChar == 'A' || lastChar == 'P') && collFormat == 18) ? // if this is the case
                   'M' : // add an M
                   '' // otherwise, add an empty string
               );
});
0
lonesomeday 16 अप्रैल 2011, 01:41