2010-03-23 16 views
10

मैं jQuery text() फ़ंक्शन को कॉल करने का प्रयास कर रहा हूं और इसे सभी पीछे और अग्रणी व्हाइटस्पेस को हटाने के लिए trim() फ़ंक्शन के माध्यम से चलाता हूं। फ़ायरफ़ॉक्स में बहुत अच्छा काम करने लगता है, हालांकि, आईई 7 में काम नहीं करता है (अंत में एक स्थान पीछे हटने से इंकार कर देता है)।jQuery ट्रिम फ़ंक्शन IE7 में काम नहीं करता है?

कोई विचार ?! शायद एक regex समाधान?

+0

क्या आप डेमो दिखा सकते हैं? – SLaks

उत्तर

5

तो यहां क्या चल रहा था इसका सारांश है। मेरे पास एक अवधि तत्व में कुछ पाठ था और उस पाठ के बाद एक हाइपरलिंक/छवि थी जिस पर उपयोगकर्ता उस लाइन से टेक्स्ट को हटाने के लिए क्लिक कर सकता था (नीचे कोड देखें)। हालांकि, मैंने अवधि पाठ और "हटाएं" छवि के बीच थोड़ा सा पैडिंग डालने के लिए अवधि तत्व टेक्स्ट (हाइपरलिंक के पाठ में) के बाद   लगाया था। तो भले ही मैं तत्व के पाठ तक पहुंच रहा था और $.trim($(this).parent().text()); को ट्रिम कर रहा था, फिर भी यह अंत में उस स्थान को शामिल करेगा! एक बार जब मैंने यह अतिरिक्त जगह हटा दी, तो चीजें ठीक काम करती थीं। अभी भी कोई विचार नहीं है कि क्यों $.trim() इसका ख्याल नहीं रखेगा ?!

<div> 
    <span> 
    <strong>SomeText</strong> 
    </span> 
    <a href="javascript:void(0);" onclick="removeMe();">&nbsp; 
    <img src="delete.png" width="15" height="15" border="0" name="imgRemove" /> 
    </a> 
</div> 
+3

आपका उपयोगकर्ता नाम soooooooooooooooooooooooooooooooooooooo आक्रामक –

+0

यह काम नहीं करता है, क्योंकि '$ .trim' वास्तविक सफेद रिक्त स्थान की तलाश में है जिसमें ' ' शामिल नहीं है, जो एक एन्कोडेड गैर-ब्रेकिंग स्पेस है, जहां तक'। ट्रिम 'चिंतित है, ऐसा लगता है कि यह' होम 'या' टॉम एंड जेरी 'जैसी एक और पाठ है, उम्मीद है कि यह मदद करता है – Val

0

हाँ मेरे पास एक विचार है। अंत में व्हाइटस्पेस उस तत्व में नहीं है जिसे आप अपना टेक्स्ट() फ़ंक्शन पर कॉल कर रहे हैं। यह आईई में हो सकता है क्योंकि यह व्हाइटस्पेस को अलग-अलग फ़ायरफ़ॉक्स का इलाज करता है, और इसे अपने तत्व देगा, जहां फ़ायरफ़ॉक्स नहीं होगा। यह सिर्फ एक झटका है, क्योंकि आपका प्रश्न आगे बढ़ने के लिए बहुत कुछ नहीं देता है।

+1

यह समझ में नहीं आता है। यह एक साधारण स्ट्रिंग है - व्हाइटस्पेस की उत्पत्ति अप्रासंगिक है। – SLaks

+0

नहीं, अगर यह ट्रिम एक स्ट्रिंग पर काम नहीं करता है, तो यह समझ में नहीं आता है, यह एक साधारण रेगेक्स है, इसे काम करना चाहिए। – mkoryak

+0

मुझे लगता है कि एक पाठ एक स्ट्रिंग देता है जो नोड्स/तत्वों को आप प्रतिबिंबित नहीं कर रहे हैं जब तक कि उन्होंने टेक्स्ट लॉल के बजाय HTML का उपयोग नहीं किया है, उत्तर अप्रासंगिक है – Val

21

आप सबसे शायद jQuery chainning के बारे में भूल गए हैं ...

कोशिश इस

$('#selector').trim($('#selector').text())

आलसी साथ

$('#selector').text().trim();//this is wrong...

संपादित नहीं है

या के रूप में @Laserson इसे और भी बेहतर आसान बना दिया है, साथ $.trim($(selector).text());

+0

यदि मैं गलत तरीके से चयन कर रहा था, तो यह समझाएगा कि यह फ़ायरफ़ॉक्स में क्यों काम करेगा, लेकिन आईई में नहीं? – YourMomzThaBomb

+0

शायद आपको स्क्रिप्ट के उदाहरण के साथ अपना उत्तर अपडेट करना चाहिए, यह केवल एक सुझाव था, आपकी आई 7 समस्या के रूप में ... या एक सबस्ट्रेट (-1,1) के साथ एक कथन का उपयोग करें ताकि यह जांच सके कि आखिरी पत्र एक है या नहीं सफेद स्थान – Val

+7

अधिक आसान: $ .trim() – Laserson

0

jQuery का उपयोग करता है/^ \ S + | \ s +/अपने ट्रिम में जी

तो अवांछित अंतरिक्ष method- यह रिटर्न के बाद जोड़ा जा करने के लिए होगा ।

यह जब आप इसे पढ़ते हैं तो यह निर्भर हो सकता है- सीधे ट्रिम ऑपरेशन से मूल्य को अलर्ट करने का प्रयास करें। यदि यह सही ढंग से पढ़ता है, तो स्ट्रिंग के बगल में जो कुछ भी आप करते हैं, उस स्थान को जोड़ा जा रहा है।

यदि ट्रिम वास्तव में पिछली जगह के साथ लौटता है, तो text.replace (/^\ s + | \ s +/g, '') का उपयोग करें।

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