22

यहां मेरे कोड का एक ब्लॉक है। यह फ़ायरफ़ॉक्स और क्रोम में सही काम करता है। लेकिन आईई में नहीं। मैं त्रुटि मिलती है "Object doesn't support property or method 'includes'"() सभी ब्राउज़रों में काम नहीं कर रहा है

function rightTreeSwapfunc2() { 
    if ($(".right-tree").css("background-image").includes("stage1") == true) { 
     $(".right-tree").css({ 
      backgroundImage: "url(/plant-breeding/img/scenes/plant-breeding/stage5.jpg)" 
     }) 
    } else { 
     $(".right-tree").css({ 
      backgroundImage: "url(/plant-breeding/img/scenes/plant-breeding/stage3.jpg)" 
     }) 
    } 
} 

मैं इसे थोड़ा बदल सकते हैं और इस्तेमाल कर सकते हैं वेनिला जे एस और कार्य करें:

document.getElementById("right-tree").classList.contains

लेकिन मैं नहीं बल्कि अगर वहाँ एक तरह से इसे पाने के लिए है देखना होगा जेएस बदलने और एचटीएमएल और सीएसएस को संपादित करने से पहले आईई में काम करने के लिए।

+0

मैं यह अजीब लगा कि लगता है grea टी लेवलर, जेक्यूरी, सभी ब्राउज़रों को सबसे कम आम denominator तक लाने में विफल रहता है - यदि 'शामिल' आईई में काम नहीं करता है, तो यह किसी भी ब्राउज़र में काम नहीं करना चाहिए –

+0

[शामिल है) (https: //developer.mozilla .org/en-US/docs/web/जावास्क्रिप्ट/संदर्भ/Global_Objects/Array/include) क्रॉस ब्राउज़र में स्थिर फ़ंक्शन नहीं – Girish

+0

में jQueery के साथ कुछ भी नहीं है - प्रश्न त्रुटिपूर्ण है: पी –

उत्तर

50

यदि आप includes() के दस्तावेज़ीकरण को देखते हैं, तो अधिकांश ब्राउज़र इस संपत्ति का समर्थन नहीं करते हैं।

आप व्यापक रूप से indexOf() समर्थित उपयोग कर सकते हैं स्ट्रिंग के लिए संपत्ति परिवर्तित toString() उपयोग करने के बाद:

if ($(".right-tree").css("background-image").indexOf("stage1") > -1) { 
//           ^^^^^^^^^^^^^^^^^^^^^^ 

तुम भी MDN से polyfill उपयोग कर सकते हैं।

if (!String.prototype.includes) { 
    String.prototype.includes = function() { 
     'use strict'; 
     return String.prototype.indexOf.apply(this, arguments) !== -1; 
    }; 
} 
+0

आईई संगतता के लिए '.includes()' के मेरे उदाहरणों को स्वैप करना पड़ा। मैंने 'haystack.includes (सुई)' to 'haystack.indexOf (सुई)! == -1' बदल दिया और यह आईई 11 पर काम करता है। – KillahB

1

आईई 11 स्ट्रिंग.प्रोटोटाइप.in शामिल करता है तो आधिकारिक पॉलीफिल का उपयोग क्यों नहीं करते?

स्रोत: "। राइट पेड़"। polyfill source

if (!String.prototype.includes) { 
    String.prototype.includes = function(search, start) { 
     if (typeof start !== 'number') { 
     start = 0; 
     } 

     if (start + search.length > this.length) { 
     return false; 
     } else { 
     return this.indexOf(search, start) !== -1; 
     } 
    }; 
    } 
-1

एक और समाधान का उपयोग करने के लिए है, इसमें शामिल हैं सही या गलत

_.contains ($() वापस आ जाएगी सीएसएस (" पृष्ठभूमि छवि ")," Stage1 ")

आशा इस मदद करता है

+0

यदि मैं गलत नहीं हूं, तो यह अंडरस्कोरज़ लाइब्रेरी द्वारा प्रदान किया गया एक फ़ंक्शन है। जब तक वह पहले से ही इसका उपयोग नहीं कर रहा है, तो यह केवल इस पॉलीफ़िल के लिए संपूर्ण लाइब्रेरी को शामिल करना कचरा होगा। –

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