2009-09-21 12 views
15

मैं कुछ सर्वर साइड HTML आउटपुट मैं शुद्ध सीएसएस का उपयोग कर के साथ सौदा नहीं कर सकते जब, अनिवार्य रूप से DIV कभी कभी रखती है:को छिपाने के लिए कैसे/निकालें एक DIV खाली

<div><span>Content</span></div> 

या

<div><p>Content</p></div> 

या

<div>Content</div> 

या

<div> </div> 

जब DIV == <div> </div> मैं इसे हटाना चाहता हूं।

कोई विचार?

उत्तर

21

और भी बेहतर (jQuery कल्पना करते हुए):

$(document).ready(function() { $('div:empty').remove(); }); 

संपादित करें: अन्य उत्तर अच्छे हैं, लेकिन ओ पी खाली आइटम को हटाने के लिए, यह छिपा नहीं चाहता था।

+1

+1 इसके लिए, ओपी ने – marcgg

10

मुझे लगता है कि आप निम्न कर सकते हैं:

$(function() { 
    $("div:empty").hide(); 
}); 

jQuery के empty छद्म चयनकर्ता महान है।

+0

कि बहुत अच्छा है, मैं खाली छद्म चयनकर्ता के बारे में पता नहीं था – marcgg

3

तुम भी सीएसएस-केवल का उपयोग करें, इस का समाधान कर सकते हैं सामग्री के आसपास style="empty-cells:hide" के साथ एक मेज डाल, और एक td को div बदल रहा, इस तरह:

से पहले:

<div>Content</div>

के बाद:

<table style="empty-cells:hide"><tr><td>Content</td></tr></table>

+2

['खाली-कक्ष '] (https://developer.mozilla.org/en-US/docs/Web/CSS/empty-cells) धड़कता है [' : खाली'] (https://developer.mozilla.org/en-US/docs/Web/CSS/:empty) IE के एक संस्करण (8.0 बनाम 9.0) द्वारा। अभी भी कुछ हद तक उपयोगी (इस उत्तर के 3-4 साल बाद भी पोस्ट किया गया था) लेकिन अतिरिक्त संरचना की मात्रा और आईई 8 के बाद से गुजरने की अवधि दी गई, भविष्य के पाठक जावास्क्रिप्ट द्वारा समर्थित 'खाली' के साथ रहना चाहेंगे उपाय। –

36

आप इस का उपयोग करते हुए केवल सीएसएस कर सकते हैं:

div:empty { display: none } 
+7

यह सफल होने के लिए न्यूनतम करने का सही उत्तर है। अगर अकेले सीएसएस पर्याप्त है तो jQuery को फायर न करें। – nalply

+5

बेस्ट सॉल्यूशन, लेकिन यह आईई 8 और आईई के पुराने संस्करणों में काम नहीं करता है http://www.quirksmode.org/css/contents.html – Peter

+0

छुपाएं और हटाएं वही नहीं हैं, हटाएं इसे पूरी तरह से डीओएम से बाहर ले जाएं, इसलिए , इसे यहां –

6

यहाँ एक और आसान तरीका है ... फिल्टर() का उपयोग कर ...

$('div').filter(function() { 

    return $.trim($(this).text()) === '' 

}).remove() 
संबंधित मुद्दे