jQuery - 隐藏具有包含特定文本的span元素的DIV

时间:2017-06-06 11:41:47

标签: javascript jquery css

我有几个具有相同类名和不同ID的div。我没有为我需要定位的文字设置ID

我需要定位电话呼叫文本。如果div包含该文本,如何隐藏包含div

<div id="rn_FieldDisplay_155" class="rn_FieldDisplay rn_Output">
   <span class="rn_DataLabel">Telephone Call </span>
   <div class="rn_DataValue">No</div>
</div>

我尝试过以下无效

<script>
$(document).ready(function() {
  $(".rn_FieldDisplay > span:contains('Telephone Call')").hide ();
});
</script>

4 个答案:

答案 0 :(得分:2)

如果您的代码隐藏了span,而不是父div,则可以使用与您编写的代码相同的代码来隐藏div。

<script>
$(document).ready(function() {
    $(".rn_FieldDisplay > span:contains('Telephone Call')").parent().hide();
});
</script>

答案 1 :(得分:0)

尝试选择它的孩子而不是元素本身:

$(document).ready(function() {
    $(".rn_FieldDisplay *:contains('Telephone Call')").hide ();
});

答案 2 :(得分:0)

尝试使用find()功能

$(document).ready(function() {
    $(".rn_FieldDisplay").find(":contains('Telephone Call')").hide ();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="rn_FieldDisplay_155" class="rn_FieldDisplay rn_Output">
    <span class="rn_DataLabel">Telephone Call </span>
    <div class="rn_DataValue">No</div>
        <p class="rn_DataLabel">Telephone Call </p>
</div>

答案 3 :(得分:0)

你可以试试这个:

if ($(".rn_FieldDisplay > span:contains('Telephone Call')").length > 0) {
    $(".rn_FieldDisplay > span").hide();
}