如何在元素中搜索文本字符串并隐藏另一个? 例如:如果一个div包含John的名称,则应该隐藏包含George的div。
<div>John Resig</div>
<div class="test">George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
我尝试过:
$(document).ready(function() {
$( "div:contains('John')" )."div:contains('George')".hide();
});
还是我不应该首先使用jQuery contains?
答案 0 :(得分:2)
您的jQuery绝对不正确。您需要使用:
if($("div:contains('John')").length){
$("div:contains('George')").hide();
}
$(document).ready(function() {
if($("div:contains('John')").length){
$("div:contains('George')").hide();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
答案 1 :(得分:1)
你是如此亲密!
$( "div:contains('John')" ).next("div:contains('George')").hide();
使用 Next 查找下一个匹配的元素。
来源:https://api.jquery.com/next/
答案 2 :(得分:1)
我认为您应该使用siblings
而不是next
,因为如果 George 将在 John next将不起作用>
<div>George Martin</div>
<div>John Resig</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
$(document).ready(function() {
$("div:contains('John')").siblings("div:contains('George')").hide(); // hide all "Georde"
// $("div:contains('John')").siblings("div:contains('George')").first().hide(); // hide only first "Georde"
});
答案 3 :(得分:0)
您可以执行以下操作:
$("div:contains(George)").toggle($("div:contains('John')").length)
$(document).ready(function() {
$("div:contains(George)").toggle($("div:contains('John')").length)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>John Resig</div>
<div>George Martin</div>
<div>Malcom John Sinclair</div>
<div>J. Ohn</div>
答案 4 :(得分:0)
$("div:contains('John')").next("div:contains('George')").hide();