में तत्व जोड़ें मैं टेक्स्ट टेक्स्ट में कोई तत्व जोड़ना चाहता हूं। उदाहरण के लिए: मेरे पास एक ऐसा फ़ंक्शन है जो तत्व के टेक्स्ट नोड के भीतर एक स्ट्रिंग की खोज करता है। जब मुझे लगता है, मैं एक HTML तत्व के साथ प्रतिस्थापित करना चाहता हूँ। क्या इसके लिए कुछ मानक है? धन्यवाद।जावास्क्रिप्ट: टेक्स्ट नोड
उत्तर
आप केवल स्ट्रिंग को प्रतिस्थापित नहीं कर सकते हैं, आपको DOM में TextNode elements can't contain child elements के बाद से पूरे टेक्स्ट नोड तत्व को प्रतिस्थापित करना होगा।
इसलिए, जब आप अपने पाठ नोड मिल जाए, अपने प्रतिस्थापन तत्व उत्पन्न करते हैं, तो एक समारोह के लिए इसी तरह के साथ पाठ नोड बदल देते हैं: यह क्या लगता है कि आप क्या करना चाहते हैं के लिए
function ReplaceNode(textNode, eNode) {
var pNode = textNode.parentNode;
pNode.replaceChild(textNode, eNode);
}
, आप को तोड़ने के लिए होगा वर्तमान पाठ नोड को दो नए टेक्स्ट नोड्स और एक नया HTML तत्व में अलग करें। यहाँ आप सही दिशा में उम्मीद है कि बात करने के लिए कुछ नमूना कोड:
function DecorateText(str) {
var e = document.createElement("span");
e.style.color = "#ff0000";
e.appendChild(document.createTextNode(str));
return e;
}
function SearchAndReplaceElement(elem) {
for(var i = elem.childNodes.length; i--;) {
var childNode = elem.childNodes[i];
if(childNode.nodeType == 3) { // 3 => a Text Node
var strSrc = childNode.nodeValue; // for Text Nodes, the nodeValue property contains the text
var strSearch = "Special String";
var pos = strSrc.indexOf(strSearch);
if(pos >= 0) {
var fragment = document.createDocumentFragment();
if(pos > 0)
fragment.appendChild(document.createTextNode(strSrc.substr(0, pos)));
fragment.appendChild(DecorateText(strSearch));
if((pos + strSearch.length + 1) < strSrc.length)
fragment.appendChild(document.createTextNode(strSrc.substr(pos + strSearch.length + 1)));
elem.replaceChild(fragment, childNode);
}
}
}
}
शायद jQuery इस आसान बना दिया होता, लेकिन यह समझना महत्वपूर्ण है क्यों इस सामान के सभी तरह से यह करता है काम करता है अच्छा है।
क्या आपके पास कोई उदाहरण हैं? धन्यवाद। – thomas
- 1. जावास्क्रिप्ट/नोड
- 2. XPath - नोड() और टेक्स्ट()
- 3. PHP डोम टेक्स्ट सामग्री बनाम नोड वैल्यू?
- 4. नोड
- 5. टेक्स्ट एचटीएमएल, सीएसएस, जावास्क्रिप्ट
- 6. Rails3 टेक्स्ट/जावास्क्रिप्ट
- 7. जावास्क्रिप्ट: सेट लेबल टेक्स्ट
- 8. जावास्क्रिप्ट/jQuery टेक्स्ट डुप्लीकेट
- 9. नोड
- 10. जावास्क्रिप्ट डोम, स्पेसिंग जानकारी खोने के बिना नोड टेक्स्ट प्राप्त करें
- 11. जावास्क्रिप्ट सम्मिलित करने से पहले() एक टेक्स्ट नोड से पहले सम्मिलित करने के लिए?
- 12. जावास्क्रिप्ट: लूप प्रत्येक तीसरे बच्चे नोड
- 13. टाइप छोड़ना = "टेक्स्ट/जावास्क्रिप्ट" भाषा = "जावास्क्रिप्ट"
- 14. आईई टेक्स्ट/जावास्क्रिप्ट एमआईएम प्रकार
- 15. "सब्लिमे टेक्स्ट 2" जावास्क्रिप्ट/jQuery
- 16. जावास्क्रिप्ट, टेक्स्ट एनोटेशन और विचार
- 17. टेक्स्ट
- 18. जावास्क्रिप्ट: कैरेट का पता लगाएं माता-पिता नोड
- 19. टेक्स्ट नोड मान के जैक्सब समतुल्य क्या है?
- 20. टेक्स्ट नोड से मिलान कैसे करें, फिर XPath
- 21. मेरे एक्सएसएलटी टेक्स्ट आउटपुट में नोड एक्सएमएल कैसे शामिल करें?
- 22. एक एक्सएमएल नोड रिटर्न पर टेक्स्ट नोडनाम() ऑपरेशन #text
- 23. एक ढहने वाले पेड़ पर नोड टेक्स्ट में हाइपरलिंक जोड़ें
- 24. एक डोम टेक्स्ट नोड के पाठ को कैसे पुनर्प्राप्त करें?
- 25. जावास्क्रिप्ट विज़ुअलाइज़ेशन टूलकिट को अनुकूलित करना स्पेसेट्री नोड
- 26. नोड
- 27. नोड
- 28. नोड
- 29. नोड
- 30. फ़ोटोशॉप जावास्क्रिप्ट द्वारा टेक्स्ट फ़ाइल में टेक्स्ट कैसे लिखें?
क्या आप jQuery का उपयोग करना चाहते हैं? –
क्षमा करें, मैं नहीं कर सकता। लेकिन बीटीडब्ल्यू, अन्य लोगों के लिए अपना समाधान दिखाएं ... – thomas
आपके पास स्ट्रिंग की खोज करने के लिए पहले से ही फ़ंक्शन है, या आप इसके बारे में भी पूछ रहे हैं? – palswim