2016-12-10 1 views
-1

Wie kann ich ein Div entfernen, wenn es heißt:Wie div entfernen, wenn es nicht reinen Text hat?

<div>...</div> 
or 
<div>"</div> 

Ich weiß, dass ich tun kann:

$("div:empty").remove(); 

Aber das ist offensichtlich in diesem Fall als div nicht korrekt ist nicht leer, da es hat Punkte oder "

Was ich mit reinem Text mittlere:

<div>MY TEXT</div> 

Basical ly beliebigen Text aber Punkte oder "

+0

Sie damit sagen, wenn 'div' keine Kinder hat? –

+0

nicht wirklich, ich meine ein div mit keine

Text example

+2

Was meinst du mit ** reinen Text **? – Azim

Antwort

2

können Sie filter() Methode verwenden, wie folgt. In filter ersetzen Sie alle " und . durch eine leere Zeichenfolge und dann, wenn die Zeichenfolge leer ist, geben Sie true.

$('div').filter(function() { 
 
    var text = $(this).text().trim().replace(/\"|\./g,''); 
 
    return !text; 
 
}).remove()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>Any text</div> 
 
<div>...</div> 
 
<div>"</div>

+0

@Azim Wie kann ich mehr Symbole hinzufügen? Ein Link zum Lernen wäre in Ordnung, danke –

+1

Sie können regex 'oder (|)' Bedingung zu verwenden füge weitere Symbole hinzu, wenn du '#' hinzufügen willst, dann ist deine Regex '/ \" | \. | #/g' @ rob.m – Azim

2

Sie überprüfen können, ob die <div> keine Kinder hat, wenn nicht, können Sie es entfernen.

var pattern = new RegExp(/^[\.|"]+$/i); 
if (pattern.test($(this).text().trim())) 
    $(this).remove(); 

Snippet

$(function() { 
 
    $("div").each(function() { 
 
    var pattern = new RegExp(/^[\.|"]+$/i); 
 
    if (pattern.test($(this).text().trim())) 
 
     $(this).remove(); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>....</div> 
 
<div>Has pure text Not Removed</div> 
 
<div>Also the below are removed.</div> 
 
<div>...</div> 
 
<div>"</div>

+0

...
hat es Kinder in diesem Fall? –

+0

meine ich, sind die Punkte als Kinder betrachtet? denn wenn das stimmt ist das nicht –

+0

@ rob.m Du meinst zu sagen, das Gegenteil davon? Machen Sie es einfach zu '! =' ... ':)' –

1
  1. Ersetzen Sie alle Saiten div Element regulären Ausdruck $("div").replace(/\+/g, "");
  2. Wenn ersetzt Element gleich " "(ist leer), entfernen Sie es.

    if($("div").replace(/\+/g, "") == "") { 
        $("div").remove(); 
    } 
    
+0

...
ist nicht leer –

+0

yep .. sorry ... bearbeitet :-) – kelly

+0

ok erklären Sie es bitte –

Verwandte Themen