删除包含特定标记的标记父级

时间:2018-06-06 20:10:52

标签: javascript jquery

我试图删除包含<p>个标签的所有<br>。我使用了这个jQuery代码,但它错了 - 代码不想删除br,我需要删除拥有br的父代。

需要你的帮助,我看到很多删除脚本,但它不起作用。

&#13;
&#13;
jQuery(function($) {
  $('#singlecomment54').find('br').each(function() {
    $(this).remove();
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="singlecomment54" class="ql-container ql-disabled">

  <div class="ql-editor" data-gramm="false" contenteditable="false">
    <p>ghjkghjk</p>
    <p>GHJK</p>
    <p>GHJK</p>
    <p><br></p>
    <p><br></p>
  </div>

  <div class="ql-clipboard" contenteditable="true" tabindex="-1"></div>
</div>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

您应该使用.parent ...,如:

$(this).parent('p').remove();

代码段:

&#13;
&#13;
jQuery(function($) {
  $('#singlecomment54').find('br').each(function() {
    $(this).parent('p').remove();
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="singlecomment54" class="ql-container ql-disabled">

  <div class="ql-editor" data-gramm="false" contenteditable="false">
    <p>ghjkghjk</p>
    <p>GHJK</p>
    <p>GHJK</p>
    <p>sdf<br></p>
    <p>sdf<br></p>
  </div>

  <div class="ql-clipboard" contenteditable="true" tabindex="-1"></div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您没有删除该段落。您正在删除中断标记:

&#13;
&#13;
jQuery(function($) {
    $('#singlecomment54').find('br').each(function() {
        $(this).remove();
    });
});
&#13;
p:before { content: 'P: '; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="singlecomment54" class="ql-container ql-disabled">

   <div class="ql-editor" data-gramm="false" contenteditable="false"> 
   <p>ghjkghjk</p>
   <p>GHJK</p>
   <p>GHJK</p>
   <p><br></p>
   <p><br></p>
   </div>

   <div class="ql-clipboard" contenteditable="true" tabindex="-1"></div>
</div>
&#13;
&#13;
&#13;

如果您想删除最近的祖先段落,可以使用.closest()

&#13;
&#13;
jQuery(function($) {
    $('#singlecomment54').find('br').each(function() {
        $(this).closest('p').remove();
    });
});
&#13;
p:before { content: 'P: '; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="singlecomment54" class="ql-container ql-disabled">

   <div class="ql-editor" data-gramm="false" contenteditable="false"> 
   <p>ghjkghjk</p>
   <p>GHJK</p>
   <p>GHJK</p>
   <p><br></p>
   <p><br></p>
   </div>

   <div class="ql-clipboard" contenteditable="true" tabindex="-1"></div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

尝试使用此firts获取所有br标签他们获得一级父母“p”并将其删除$("br").parent("p").remove ()

或者你可以迭代br对象列表并应用每个项目.parent(“p”)。remove()