2011-10-10 12 views
52

में संपत्ति या विधि ट्रिम() का समर्थन नहीं करता है jQuery ट्रिम विधि के साथ क्या हो रहा है ??jQuery ऑब्जेक्ट आईई

jQuery('#Reminders').attr('value').trim() 

वस्तु संपत्ति या विधि का समर्थन नहीं करता 'ट्रिम'

jQuery('#Reminders').attr('value') 

"5,1,1"

$('#Reminders').attr('value').split(',') 

[5,1,1] 
[0]: "5" 
[1]: "1" 
[2]: "1" 

मैं Firefox या Chrome में इन संकट नहीं है ... केवल आईई 9.0। क्या ट्रिम() के बारे में कुछ खास है ... मुझे ज्ञापन नहीं मिला।

उत्तर

91

आईई में string.trim() विधि नहीं है।

इसके बजाय, आप jQuery के $.trim(str) पर कॉल कर सकते हैं।

0

इसमें jquery के साथ कुछ भी नहीं है। Attr एक स्ट्रिंग लौट रहा है। इसका अर्थ यह है कि आईई में स्ट्रिंग पर ट्रिम विधि नहीं है।

6

trim() किसी jQuery संदर्भ में ऐसा नहीं कहा जाता है।

एक बार जब आप attr() पर कॉल करते हैं, तो यह jQuery चेनिंग का अंत है। http://api.jquery.com/attr/

ऐसा करने के लिए देखें, कार्य करें:

jQuery.trim(jQuery('#Reminders').attr('value')); 

देखें: http://api.jquery.com/jQuery.trim/

10

आप ट्रिम() विधि स्ट्रिंग वस्तु पर समर्थन के बिना इस विधि के लिए जोड़ सकते हैं, ब्राउज़र के लिए (आईई एक जैसे)।

सीधे शब्दों में इन पंक्तियों को जोड़ने से पहले आप ट्रिम() विधि फोन:

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ''); 
} 
+1

तो यदि आप पहले से मौजूद हैं तो आप 'ट्रिम' विधि को ओवरराइट नहीं करते हैं, तो आप कर सकते हैं: 'String.prototype.trim = String.prototype.trim || फ़ंक्शन() { इसे वापस करें। स्थान (/^\ s + | \ s + $/g, ''); } ' –

4

एक ही समस्या आईई नहीं होने trim() विधि के साथ यहाँ। मैंने trim() जोड़कर हल किया है यदि यह अस्तित्व में नहीं है।

(function(str) { 
    if (typeof(str.prototype.trim) === 'undefined') { 
     str.prototype.trim = function() { 
      return $.trim(this); 
     }; 
    } 
})(String); 

अच्छा काम करता है।

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