如果它没有纯文本,如何删除div?

时间:2016-12-10 17:26:32

标签: jquery

如果删除div,我该怎么做:

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

我知道我能做到:

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

但在这种情况下,这显然不正确,因为div不是空的,因为它有点或&#34;

我对纯文本的意思是:

<div>MY TEXT</div>

基本上任何文字,但&#34;

3 个答案:

答案 0 :(得分:2)

您可以检查<div>是否有孩子,如果没有,您可以将其删除。

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

<强>段

$(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>

答案 1 :(得分:2)

您可以使用以下filter()方法。在filter中用空字符串替换所有".,如果字符串为空,则返回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>

答案 2 :(得分:1)

  1. 使用正则表达式div
  2. 替换$("div").replace(/\+/g, "");元素的所有字符串
  3. 如果替换元素等于&#34;&#34; (是空的),将其删除。

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