jQuery搜索元素与文本,隐藏另一个

时间:2018-08-08 09:48:14

标签: javascript jquery

如何在元素中搜索文本字符串并隐藏另一个? 例如:如果一个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?

5 个答案:

答案 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();