Monday, 15 August 2011

javascript - Cannot read property 'replace' of undefined - replacing text in JS generated HTML -


मेरी एक अनोर्ड सूची ( ul ) है जो बाहरी जावास्क्रिप्ट द्वारा उत्पन्न होती है। प्रत्येक सूची वस्तु में एक दोहराई गई पंक्ति है जो मैं हटाना चाहूंगा क्योंकि मैं बाहरी जावास्क्रिप्ट को संशोधित नहीं कर सकता, मैं प्रतिस्थापन पद्धति का उपयोग करने का प्रयास कर रहा हूं। सूची को प्रत्येक li तत्व को दिए गए वर्ग द्वारा पहचाना जाता है; आरएसएस-आइटम

निम्नलिखित मेरा कोड है:

  & lt; स्क्रिप्ट & gt; फ़ंक्शन myFunction () {var str = document.getElementsByClassName ('आरएसएस-आइटम')। InnerHTML; Var res = str.replace ('को बदलने के लिए पाठ', ''); Document.getElementsByClassName ('आरएसएस-आइटम')। InnerHTML = res; } & Lt; / script & gt; & Lt; बटन onclick = "myfunction ()" & gt; बदलें & lt; / बटन & gt;  

निम्न पंक्ति पर त्रुटि उत्पन्न हो रही है:

  var res = str.replace ('प्रतिस्थापित करने के लिए टेक्स्ट', '');  

त्रुटि बताती है:

  अनक्यूट टाइप एरर: अपरिवर्तित  

की संपत्ति को 'प्रतिस्थापित' नहीं पढ़ा सकता है I समझो, यह शायद इसका अर्थ है कि जावास्क्रिप्ट क्लास के नाम 'आरएसएस-मद' के साथ तत्व को नहीं खोज रहा है, या मैं पाठ बदलने की कोशिश कर रहा हूं। मैं पूरी तरह से निश्चित हूं कि यह सही वर्ग का नाम है, और यह पाठ वास्तव में वहां बदलने की कोशिश कर रहा है। क्या यह समस्या आ रही है क्योंकि जावास्क्रिप्ट द्वारा मार्कअप उत्पन्न किया जा रहा है? मैं एक मृत अंत में आया हूँ

document.getElementsByClassName ('आरएसएस-आइटम') एक सरणी- वस्तु (ए) की तरह यदि आप पहले तत्व चाहते हैं, तो आपको इसके लिए पूछना चाहिए:

  var str = document.getElementsByClassName ('rss-item') [0]। WinnerHTML;  

यदि आप थोड़ा और अधिक रक्षात्मक होना चाहते हैं, तो वास्तव में यह जाँच कर लायक हो सकता है कि किसी भी तत्व को इस तरह से उपयोग किया गया है:

  var तत्व = दस्तावेज़.getElementsByClassName ('आरएसएस-आइटम'); यदि (elements.length & gt; 0) {तत्वों [0]। WinnerHTML = तत्व [0]। WinnerHTML.replace ('को बदलने के लिए पाठ', ''); }  

जैसा कि आप टिप्पणियों में सुझाव दिया है, आप पाए गए सभी तत्वों पर प्रतिस्थापन कर सकते हैं। इस मामले में, आप इस तरह के तत्वों के माध्यम से लूप कर सकते हैं:

  var तत्व = document.getElementsByClassName ('rss-item'); के लिए (var i = 0; i & lt; elements.length; ++ i) {तत्व [i] .innerHTML = तत्व [i]। WinnerHTML.replace ('को बदलने के लिए पाठ', ''); }  

No comments:

Post a Comment