TextNode मान बदलें


91

क्या वेब ब्राउज़र में एक DOM textNode के मूल्य को बदलने का कोई तरीका है?

मैं विशेष रूप से यह देखना चाहता हूं कि क्या मैं नया बनाने के बजाय मौजूदा नोड को बदल सकता हूं ।

स्पष्ट करने के लिए, मुझे जावास्क्रिप्ट के साथ ऐसा करने की आवश्यकता है। ब्राउज़र में सभी पाठ #textNodes में संग्रहीत हैं जो अन्य HTML नोड्स के बच्चे हैं, लेकिन उनमें स्वयं के बाल नोड नहीं हो सकते हैं।

जैसा कि नीचे दिया गया है , इन ऑब्जेक्ट्स के नोडवैल्यू प्रॉपर्टी को सेट करके कंटेंट को बदला जा सकता है ।


HTML का उदाहरण और आप क्या बदलना चाहेंगे? क्या आप इसे जावास्क्रिप्ट का उपयोग करना चाहते हैं?
शाहकलेप

इसी प्रश्न पर अपने शोध के दौरान, मुझे पता चला कि मोज़िला डेवलपर नेटवर्क innerHTMLउपयोग के बारे में एक सुरक्षा सूचना देता है , और textContentउपयोग के पक्ष में हैtextContentकाम करना मेरे लिए ठीक है।
जोएल

जवाबों:


130

आप (प्रकार #text की) एक विशिष्ट नोड है और अपने मूल्य बदलना चाहते हैं आप उपयोग कर सकते nodeValue संपत्ति:

node.nodeValue="new value";

ध्यान दें:

इनर टेक्स्ट (और संभवतः textContent) वर्तमान नोड और सभी अवरोही नोड्स टेक्स्ट को वापस / सेट कर देगा, और ऐसा व्यवहार आपके द्वारा अपेक्षित या अपेक्षित नहीं हो सकता है।


1
हां, नोडवैल्यू इसके लिए एकदम सही है। इस संबंध में इनर टेक्स्ट और टेक्स्ट कॉन्टेंट अलग-अलग हैं: IE (जिसने इनर टेक्स्ट बनाया है) #text नोड्स पर इसका समर्थन नहीं करता है (क्योंकि इसमें कोई चाइल्ड नोड्स नहीं हैं।
वर्धमान ताजा

4
पाठ पर 'नोडवैल्यू' के लिए एक संक्षिप्त पर्याय के रूप में 'डेटा' भी है (साथ ही सीडीएटीएसएएनवाई और टिप्पणी)।
बॉब

नोडवैल्यू वह है जिसकी मुझे आवश्यकता थी। किसी कारण से मुझे लगा कि यह केवल पढ़ने के लिए है, लेकिन FF3 और IE7 पर काम करने लगता है। धन्यवाद!
लेविक

8
@petermeissner: यह पूरी तरह से सवाल का जवाब देता है, इसलिए आपका पतन पूरी तरह से अनुचित है।
टिम डाउन

1
हमेशा काम नहीं करता है .. "जब नोडल्यू को शून्य के रूप में परिभाषित किया जाता है, तो इसे स्थापित करने का कोई प्रभाव नहीं होता है।" .. मैं "textContent" के लिए उस मामले में विकल्प चुना ... सेटिंग यह भी "innerText" के लिए मूल्य अद्यतन
foobored

-10

मेरा मानना ​​है कि इसके लिए आंतरिक HTML का उपयोग किया जाता है ... फिर से, कि W3C स्वीकृत नहीं है ... लेकिन यह काम करता है ...

node.innerHTML="new value";

1
एक काम के समाधान के लिए +1। नोडवैल्यू मुझे तत्व की सामग्री को प्रतिस्थापित करने की अनुमति नहीं देता है
पीटरमैरनर

3
आपको कभी भी इसका उपयोग नहीं करना चाहिए innerHTMLक्योंकि यह कोड को पाठ और लेखन दोनों के रूप में मानता है ।
जॉन

7
@petermeissner: यह प्रश्न का उत्तर नहीं देता है। आपको nodeValueटेक्स्ट नोड पर सेट करना है, न कि इसका मूल तत्व।
टिम डाउन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.