जबकि एक परियोजना मैं एक बग भर में भाग गया और इस अप्रत्याशित व्यवहार का पता चला पर काम कर रहा: यदि मैं एक स्ट्रिंग पर .replace()
फोन और एक div .text()
का उपयोग कर समारोह को बदलने के लिए परिणाम सेट.html() का उपयोग क्यों करता है यह अभिव्यक्ति बदलें?
काम करता है के रूप में मैं उम्मीद करते हैं।
हालांकि, अगर मैं स्ट्रिंग पर .replace()
पर कॉल करता हूं और परिणाम .html()
का उपयोग करके एक div पर सेट करता हूं, तो लक्षित टेक्स्ट को स्ट्रिंग में प्रतिस्थापित नहीं किया जाता है।
यहाँ मैं क्या मतलब है की एक उदाहरण है:
\t $('#result1').text('¤cyId'.replace('¤cyId','¤cyId')); // works
\t $('#result2').html('¤cyId'.replace('¤cyId','¤cyId')); // doesnt work
var result = '¤cyId'.replace('¤cyId','¤cyId')
\t $('#result3').text(result); // works
\t $('#result4').html(result); // doesnt work
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result1"></div><br>
<div id="result2"></div><br>
<div id="result3"></div><br>
<div id="result4"></div>
मुझे लगता है कि .html()
के बजाय .text()
का उपयोग कर समस्या का समाधान होता है, लेकिन ...
इस क्यों होता है ?
* "लक्षित टेक्स्ट स्ट्रिंग में प्रतिस्थापित नहीं किया गया है" * - नहीं, लक्षित टेक्स्ट * प्रतिस्थापित किया गया है। ऐसा तब होता है जब परिणाम HTML के रूप में माना जाता है जो आपकी समस्या का कारण बनता है। – nnnnnn