【问题标题】:Remove <h3> by its text content删除 <h3> 的文本内容
【发布时间】:2015-06-12 13:25:43
【问题描述】:

我正在尝试从通过文本选择的标题列表中删除“h3”标签。 例如,如果我有:

html:

<h3>NO CHANGE</h3>
<h3>h3 to be removed</h3>
<h3>NO CHANGE</h3>
<h3>NO CHANGE</h3>
<h3>NO CHANGE</h3>

jQuery:

var h3_text_remove = $('h3').text();
if (h3_text_remove == 'h3 to be removed'){
    $('h3').remove();
//console.log (h3_text_remove);
}

如何仅删除带有文本“要删除的 h3”的标题?

小提琴: http://jsfiddle.net/q2nb08t6/7/

【问题讨论】:

  • 您可以将每个用于 h3 标签并检查 h3 标签的文本是否符合您的条件。然后删除 h3

标签: javascript jquery html-heading


【解决方案1】:

你可以使用contains()选择器

$("h3:contains('h3 to be removed')").remove();

Fiddle

【讨论】:

    【解决方案2】:

    用途:

    //If text can have leading or trailing spaces
    $('h3').filter(function() {
        return $(this).text().trim() == 'h3 to be removed';
    }).remove();
    
    //or if the text should match exactly:
    $('h3').filter(function() {
        return $(this).text() == 'h3 to be removed';
    }).remove();
    

    演示 1

    $('h3').filter(function() {
        return $(this).text().trim() == 'h3 to be removed';
    })
    .remove();
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <h3>NO CHANGE</h3>
    <h3>h3 to be removed</h3>
    <h3>NO CHANGE</h3>
    <h3>NO CHANGE</h3>
    <h3>NO CHANGE</h3>
    <h3>h3 to be removed </h3>
    <h3> h3 to be removed</h3>
    <h3>h3 to be removed xx</h3>

    DEMO 2

    【讨论】:

      【解决方案3】:

      您可以使用此解决方案:基本解决方案易于理解。

      小提琴:http://jsfiddle.net/q2nb08t6/10/

      $('h3').each(function(){
      var h3_text_remove = $(this).text().trim();
      
      if (h3_text_remove == 'h3 to be removed'){
          $(this).remove();
      }
      });
      

      【讨论】:

        【解决方案4】:

        如果您只想删除标签而不是内容

        $('h3').each(function(){
            var h3_text_remove = $(this).text().trim();
        
            if (h3_text_remove == 'h3 to be removed'){
                $(this).unwrap();
            }
        });
        

        【讨论】:

          【解决方案5】:

          您可以使用:contains() 选择器在一行中完成此操作:

          $('h3:contains("h3 to be removed")').remove();
          

          或者使用变量:

          var h3_text_remove = $('#specificH3').text();
          $('h3:contains("' + h3_text_remove + '")').remove();
          

          请注意,这将删除以任何方式包含该文本的所有 h3 元素,因此以下两个都将被删除:

          <h3>h3 to be removed</h3>
          <h3>foo h3 to be removed bar</h3>
          

          要将其限制为仅包含整个文本的元素,请使用filter():

          $('h3').filter(function() {
              return $(this).text() == 'h3 to be removed';
          }).remove()
          

          【讨论】:

            猜你喜欢
            • 2015-02-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-12-10
            • 2018-04-10
            • 2019-08-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多