div

2011-04-21 15 views
18

की सामग्री को खाली करने के लिए कैसे कोई व्यक्ति जावास्क्रिप्ट में एक div (इसे नष्ट किए बिना) की सामग्री को खाली करने के बारे में जानता है?div

धन्यवाद,

ब्रूनो

+0

जेएसक्रिप्ट के माध्यम से? बस इसे दिखाई नहीं दे रहा है? तुम्हारी वास्तव में इच्छा क्या है? – ITroubs

+0

जावास्क्रिप्ट के साथ? और jQuery? –

+0

आपके उत्तरों के लिए सभी को धन्यवाद! – Bruno

उत्तर

38

अपने div इस तरह दिखाई देता है:

<div id="MyDiv">content in here</div>

फिर

इस जावास्क्रिप्ट:

document.getElementById("MyDiv").innerHTML = "";

यह थी की तरह लग कर देगा रों:

<div id="MyDiv"></div>

+2

बहुत अच्छा काम किया। इसने div ($ # example ') के दौरान div से JS (मेरे मामले में एक ओपनलेयर मानचित्र) हटा दिया। खाली(); जेएस को नहीं हटाया –

+1

धन्यवाद। यह 2017 में भी मेरे लिए काम किया! –

+0

जो इसे नष्ट कर देता है। – JackHasaKeyboard

8

आप jQuery उपयोग कर रहे हैं ...

$('div').html(''); 

या

$('div').empty(); 
+1

उन्होंने जावास्क्रिप्ट में jquery नहीं पूछा। – easwee

1

jQuery में यह होगा के रूप में सरल रूप में $('#yourDivID').empty()

देखें documentation

+1

मूल प्रश्न jquery के लिए कोई संदर्भ नहीं बनाया। कृपया मान लें कि बुनियादी जावास्क्रिप्ट ऑपरेशंस को हर साधारण कार्य के लिए किसी प्रकार की बाहरी लाइब्रेरी की आवश्यकता होती है। – mopsyd

+0

@mopsyd ओह लड़का, क्या उत्तर के 5 साल बाद यह आवश्यक है? :) jQuery 2011 में मानक की तरह था और आपकी जानकारी के लिए यह अभी भी व्यापक रूप से उपयोग किया जाता है। jQuery जावास्क्रिप्ट बीटीडब्ल्यू है। अगर आपको पता नहीं था ... –

+0

तो 'document.querySelector (" # myDiv ") था। इनर HTML =" ";' – mopsyd

3

यह को नष्ट किए बिना कह कर, आप एक मतलब तो बच्चों के लिए एक संदर्भ रखने के लिए, आप कर सकते हैं:

var oldChildren = []; 

while(element.hasChildNodes()) { 
    oldChildren.push(element.removeChild(element.firstChild)); 
} 

आपके प्रश्न के मूल टैगिंग (html css) के बारे में:

आप सीएसएस के साथ सामग्री को हटा नहीं सकते हैं। आप इसे केवल छुपा सकते हैं। जैसे आप के साथ एक निश्चित नोड के सभी बच्चों को छुपा सकते हैं:

#someID > * { 
    display: none; 
} 

यह IE6 में काम नहीं करता है, हालांकि (लेकिन आप #someID * इस्तेमाल कर सकते हैं)।

0

यह करने के लिए एक वैकल्पिक तरीका है:

var div = document.getElementById('myDiv'); 
while(div.firstChild) 
    div.removeChild(div.firstChild); 

हालांकि, का उपयोग कर document.getElementById('myDiv').innerHtml = ""; तेज है।

देखें: Benchmark test

N.B.

दोनों विधियां div को संरक्षित करती हैं।

+1

क्या मैं उस परीक्षा को गलत तरीके से पढ़ रहा हूं? सभी ब्राउज़रों के लिए पहले तरीके से उच्च ओप/सेकंड होता है जिसका अर्थ है कि यह तेज़ है। दूसरा तरीका धीमा और अधिक घुलनशील है। – pucky124

+0

नहीं, आप सही हैं। मैंने इसे गलत समझा। मैंने कुल समय के लिए प्रति सेकंड ऑपरेशन गलत लगाया। मैं अपना जवाब अपडेट करूंगा। –