删除包含特定关键字的div

时间:2011-05-20 14:19:23

标签: jquery html

鉴于此html,

<div id="knownParent">
    <div>   <!-- This is the div to delete -->
        <a>a link</a>
        <span>the <b>keyword</b> is here somewhere and it is not repeated</span>
        <p>what I want is to delete the div containing this keyword</p>
    </div>
    <div id="knownNext"></div>
</div

我需要删除div“divToDelete”。我总是知道它的父div和它的下一个兄弟div是什么,我可以通过div的内容中的某个关键字来确定div。

使用jquery,我会这样做吗?

6 个答案:

答案 0 :(得分:5)

使用:contains()

var keyword = 'keyword';
$('#knownParent').find('div:contains(' + keyword + ')').remove();

演示:http://jsfiddle.net/mattball/h6E7W/

答案 1 :(得分:1)

如果您知道下一个兄弟,那么只需使用prev()[docs]方法。

var knownSibling = $('#knownNext');

knownSibling.prev('div').remove();

这比 更快<尝试使用某些文字内容来识别它。

答案 2 :(得分:0)

尝试:

$("#divToDelete").remove();

答案 3 :(得分:0)

$('div:contains("keyword")', '#knownParent').remove();

文档:http://api.jquery.com/contains-selector/

答案 4 :(得分:0)

您应该看一下这个JQuery API:http://api.jquery.com/contains-selector/

这是一个简单的例子;

<html>
  <head>
  <title>JQuery Test</title>
  </head>
  <body>

  <div id="mydiv">
    bar foo poo
  </div>

  <a id="deleteDiv" href="#">delete div</a>

  <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>

  <script type="text/javascript">

  $(document).ready(function(){

    $("#deleteDiv").click(function() {
      $("#mydiv:contains('foo')").remove();
    });

  });

  </script>
  </body>
</html>

答案 5 :(得分:-2)

如果你知道父母&amp;接下来,你也可以这样做:

$("div").filter(function() {
    return (
        ($(this).parent().attr("id") === "knownParent")
        &&
        ($(this).nextAll("div").attr("id") === "knownNext")
    );
}).remove();

jsfiddle example