鉴于此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,我会这样做吗?
答案 0 :(得分:5)
使用:contains()
:
var keyword = 'keyword';
$('#knownParent').find('div:contains(' + keyword + ')').remove();
答案 1 :(得分:1)
如果您知道下一个兄弟,那么只需使用prev()
[docs]方法。
var knownSibling = $('#knownNext');
knownSibling.prev('div').remove();
这比 更快<尝试使用某些文字内容来识别它。
答案 2 :(得分:0)
尝试:
$("#divToDelete").remove();
答案 3 :(得分:0)
$('div:contains("keyword")', '#knownParent').remove();
答案 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();