में काम नहीं कर रहा है कि क्यों if (element.innerHTML == "")
फ़ायरफ़ॉक्सक्यों करता है, तो (element.innerHTML == "") फ़ायरफ़ॉक्स
में काम नहीं है, लेकिन IE में ठीक काम करता है, किसी भी विचार कृपया?
में काम नहीं कर रहा है कि क्यों if (element.innerHTML == "")
फ़ायरफ़ॉक्सक्यों करता है, तो (element.innerHTML == "") फ़ायरफ़ॉक्स
में काम नहीं है, लेकिन IE में ठीक काम करता है, किसी भी विचार कृपया?
अपने एचटीएमएल को देखे बिना कहना मुश्किल है, लेकिन मैं शायद कहूंगा क्योंकि आपके पास तत्व में कुछ खाली सफेद जगह है, और आईई इसे टेक्स्ट नोड के रूप में नहीं मानता है, जबकि एफएफ करता है।
मेरा मानना है कि यह वास्तव में पाठ नोड के रूप में टैग के बीच किसी भी खाली सफेद स्थान का इलाज करने के लिए एक अधिक सख्त मानक अनुपालन है, लेकिन आईई का पालन नहीं करता है।
आप कर सकता है:
var htmlstring = element.innerHTML;
// use the native .trim() if it exists
// otherwise use a regular expression
htmlstring = (htmlstring.trim) ? htmlstring.trim() : htmlstring.replace(/^\s+/,'');
if(htmlstring == '') {...
या बस मैन्युअल रूप से अपने HTML मार्कअप में खाली स्थान के से छुटकारा पाने के।
@ पैट्रिक dw: thnx आपके उत्तर और उपयोगी जानकारी के लिए। , क्या आपको इस स्थिति को फ़ायरफ़ॉक्स में कैसे काम करना है, इस बारे में कोई जानकारी है ?? –
@mahmoud, उद्घाटन टैग के> को बंद टैग के <स्पर्श करें < – Benjol
@mahmoud - '.trim()' का समर्थन करने वाले ब्राउज़र के लिए, आप परीक्षण करने से पहले व्हाइटस्पेस को ट्रिम कर सकते हैं। सभी ब्राउज़र '.trim()' हालांकि समर्थन नहीं करते हैं। मैं एक मिनट में अपडेट करूंगा। – user113716
आप सर्वोत्तम परिणामों के लिए element.innerHTML.trim() == ""
देख सकते हैं या नहीं।
if (!String.prototype.trim) {
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
}
if (element.innerHTML.trim() == "") {
//do something
}
यह '.trim()' का समर्थन करने वाले ब्राउज़र में किसी भी मूल कार्यान्वयन को ओवरराइट करेगा। आपको वास्तव में पहले इसके लिए परीक्षण करना चाहिए। – user113716
@patrick धन्यवाद, तय (मुझे उम्मीद है) – naivists
हाँ, मुझे लगता है कि इसमें इसे शामिल किया जाएगा। : ओ) – user113716
एक वैकल्पिक पद्धति रिक्त स्ट्रिंग के लिए जाँच करने के लिए है लंबाई की जांच करने के लिए: हालांकि, तो आप एक trim()
विधि के साथ स्ट्रिंग प्रोटोटाइप का विस्तार करने के लिए है
element.innerHTML.length == 0
लेकिन, आप अभी भी था यदि आपके पास एक व्हाइटस्पेस स्ट्रिंग है जिसे आप मिलान करना चाहते हैं तो trim()
पर होना चाहिए।
मेरे लिए, यह स्थापित करने के लिए मेरे innerHTML
Firefox
और न ही Chrome
में काम कर रहा था तरह लग रहा था लेकिन यह मेरी त्रुटि के कारण IE
में काम किया है। यह पता चला कि मुझे पहले स्थान पर getElementById
का उपयोग करके तत्व कभी नहीं मिला था। IE
name=
getElementById
के साथ और Firefox
और Chrome
अधिक कठोर था और केवल id=
तत्वों को स्वीकार करता है, जो तत्वों के साथ ठीक है। (मेरे दृश्य में अधिक सही ढंग से) मुझे उम्मीद है कि यह किसी को कुछ निराशा बचाता है।
आईई इस तरह की चीजें क्यों करता है और लोगों को भ्रमित करता है ...
फ़ायरफ़ॉक्स में परीक्षण आउटपुट क्यों न करें और देखें कि इसमें क्या शामिल है? –
@ पेक्का उत्पादन में पहले से ही खाली स्ट्रिंग है !! –
कृपया एचटीएमएल ('तत्व' जिसे आप जांच रहे हैं) की आपूर्ति करें। इस परिदृश्य में कई चीजें गलत हो सकती हैं - यानी आपका 'तत्व' शून्य हो सकता है। – rochal