2010-04-26 12 views

उत्तर

5

यहाँ मेरी विचार है:

function removeText(element){ 
    var newElement = $('<' + element[0].nodeName + '/>'); 
    element.children().each(function(){ 
     newElement.append(this); 
    }); 
    element.replaceWith(newElement); 
} 
+3

फ़ंक्शन स्ट्रिपटेक्स्ट (तत्व) { \t \t var item = element [0]; \t \t var newElement = $ ('<' + item.nodeName + '/>'); { \t \t \t newElement.attr (item.attributes [i] .name, item.attributes [i] .Value) \t (; मैं item.attributes.length Mandrake

+0

+1 मँड्रेक का समाधान तत्व के गुणों को हटाए जाने के मुद्दे को हल करता है। –

-8
$('#someElement').text(''); 
+1

यू सुनिश्चित हैं? यह बच्चों को भी हटा देता है। शायद क्योंकि मैं jquery 1.2.3 – aneuryzm

+1

का उपयोग करता हूं, यह 1.4.2 में सभी बच्चों को हटा देता है साथ ही – Rudism

+0

रूडिज्म सही है। यह बच्चों सहित तत्व के भीतर सबकुछ हटा देता है। – Davis

-4

आप इसे that.Unless ऐसा नहीं कर सकते एक तत्व से लपेटा जाता है।

6

यह मेरे लिए काम करता है:

$(elem).html($(elem).html().replace($(elem).text(),'')); 

यह पाठ सामग्री के बिना html सामग्री निर्धारित करते हैं, इसका मतलब है कि ELEM के अंदर किसी भी HTML टैग जा बिना रखेंगे परिवर्तन।

से पहले:

<div>Hello<input type="text" name="username" value="world!"/></div> 

के बाद:

<div><input type="text" name="username" value="world!"/></div> 

अलविदा

+2

कृपया कुछ स्पष्टीकरण जोड़ें। –

+1

इसके साथ कुछ समस्याएं हैं: 1) स्ट्रिंग फ़ंक्शंस के साथ एचटीएमएल को संपादित करना जैसे मार्कअप को तोड़ सकता है (उदाहरण के लिए। यदि टेक्स्ट '' 'या' '' 'है), 2) पाठ से मेल खाने वाला कुछ भी बदल दिया गया है (उदाहरण के लिए। पाठ 'उपयोगकर्ता' है तो नाम विशेषता बदल जाएगी), 3) यदि पाठ बच्चों के बीच फैल गया है तो यह काम नहीं करेगा (उदाहरण के लिए। "

Hello
World
") – Warbo

39

बेस्ट और आसान समाधान निश्चित div से सभी पाठ तत्वों को दूर करने के लिए है

$("#firstDiv").contents().filter(function(){ 
    return (this.nodeType == 3); 
}).remove(); 
+3

उत्कृष्ट समाधान। मेरे लिए काम करता है। – jwinn

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