javascript - Remove div if it has BR and no text jQuery - Stack Overflow

I have a page where some div has content and some are having only BR tag, I am trying to remove the div

I have a page where some div has content and some are having only BR tag, I am trying to remove the div that div has only BR tag, following is the html format

Some are like this

<div>
  <br>
</div>

And Some are like this

<div>
  <br>
  Text goes here text goes here..Text goes here text goes here.. Text goes here text goes here..
</div>

As I know I can find the blank div and remove it easily but hard to check the inner BR tag and remove, can somebody please help!

I tried to check blank div like this

if(
    $('div').is(':empty')) { 
        $(this).remove();
} 

I have a page where some div has content and some are having only BR tag, I am trying to remove the div that div has only BR tag, following is the html format

Some are like this

<div>
  <br>
</div>

And Some are like this

<div>
  <br>
  Text goes here text goes here..Text goes here text goes here.. Text goes here text goes here..
</div>

As I know I can find the blank div and remove it easily but hard to check the inner BR tag and remove, can somebody please help!

I tried to check blank div like this

if(
    $('div').is(':empty')) { 
        $(this).remove();
} 
Share Improve this question asked Nov 23, 2016 at 12:01 Sanjeev KumarSanjeev Kumar 3,1635 gold badges39 silver badges82 bronze badges 1
  • have you tried .html() for that div? – Mehravish Temkar Commented Nov 23, 2016 at 12:06
Add a ment  | 

5 Answers 5

Reset to default 7

:empty selector will not work as the div has br element.

You can use .filter() to get all div element which has no text() then remove() can be used.

$('div').filter(function() {
  return $(this).text().trim().length == 0;
}).remove();
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <br>Text goes here text goes here..Text goes here text goes here.. Text goes here text goes here..
</div>
<div>
  <br>
</div>

Use jQuery.filter and test the textContent of element!

$('div').filter(function() {
  return this.textContent.trim() === '';
}).remove();
<script src="https://ajax.googleapis./ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div>
  <br>
</div>

<div>
  <br>Text goes here text goes here..Text goes here text goes here.. Text goes here text goes here..
</div>

Use $("div").text().trim()

Example Snippet:

if ($("div").text().trim() === "") {
  $("div").html("hellk")
}
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <br>
</div>

Pure-JS solution: find all BR elements that are the only children of their parent DIVs and then iterate over the resulting collection and remove parent element of each BR element if the parent doesn’t contain non-whitespace text:

var brElements = document.querySelectorAll('DIV > BR:first-child:last-child');

Array.from(brElements).forEach(function(br) {
    var div = br.parentNode;

    if (0 === div.textContent.trim().length) {
        div.parentNode.removeChild(div);
    }
});

// For older browsers not supporting `Array.from(arrayLike)`,
// use `Array.prototype.slice.call(arrayLike, 0)`.

This is also potentially faster than filtering all DIV elements in the document.

$('div').each(function(){
    if($(this).text.trim().length == 0) {
        $(this).remove();
    }
})

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744246412a4564954.html

相关推荐

  • javascript - Remove div if it has BR and no text jQuery - Stack Overflow

    I have a page where some div has content and some are having only BR tag, I am trying to remove the div

    9天前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信