jquery如果span包含这个,那么隐藏它

时间:2015-12-17 15:42:09

标签: jquery

我创建了脚本来定位1个元素,并根据find来隐藏不同的元素。 事情是这是一个目录,所以有很多DIV具有相同的项目,ID等。 是否可以更改脚本,使其看起来像记录,而不是一旦找到1就行动?

这是HTML(2项 - 请记住它可能还有更多)

<div class="katalog-record-container katalog-library-record">
    <div class="katalog-record">            
        <div class="katalog-record-details">
            <div class="katalog-record-media">
                <span class="katalog-field">Media class:</span>
                <span class="katalog-value">eBook</span>
            <div class="katalog-record-right">
                <div class="katalog-record-availability">
                    <a href="http://katalog-url/web/katalog/"><span class="katalog-available">Available for loan</span></a>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="katalog-record-container katalog-library-record">
    <div class="katalog-record">            
        <div class="katalog-record-details">
            <div class="katalog-record-media">
                <span class="katalog-field">Media class:</span>
                <span class="katalog-value">eAudio</span>
            <div class="katalog-record-right">
                <div class="katalog-record-availability">
                    <a href="http://katalog-url/web/katalog/"><span class="katalog-available">Available for loan</span></a>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="katalog-record-container katalog-library-record">
    <div class="katalog-record">            
        <div class="katalog-record-details">
            <div class="katalog-record-media">
                <span class="katalog-field">Media class:</span>
                <span class="katalog-value">eAudio</span>
            <div class="katalog-record-right">
                <div class="katalog-record-availability">
                    <a href="http://katalog-url/web/katalog/"><span class="katalog-available">Available for loan</span></a>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="katalog-record-container katalog-library-record">
    <div class="katalog-record">            
        <div class="katalog-record-details">
            <div class="katalog-record-media">
                <span class="katalog-field">Media class:</span>
                <span class="katalog-value">eBook</span>
            <div class="katalog-record-right">
                <div class="katalog-record-availability">
                    <a href="http://katalog-url/web/katalog/"><span class="katalog-available">Available for loan</span></a>
                </div>
            </div>
        </div>
    </div>
</div>

使用的脚本:

    <script type="text/javascript"> $(function () {
    var checkExist = setInterval(function () {
        if ($('.katalog-record-container.katalog-library-record .katalog-record-media span:contains("eBook")').length > 0) {
            $('.katalog-record-container.katalog-library-record .katalog-record-right').hide();
        }
        clearInterval(checkExist);
    }, 10);
});
</script>

但看起来当它找到电子书时它会删除所有div的可用性,并且它不应该是因为并非它们都是电子书

请帮忙吗?

3 个答案:

答案 0 :(得分:0)

$(function () {
    var checkExist = setInterval(function () {
        if ($('.katalog-record-container.katalog-library-record .katalog-record-media span:contains("eBook")').length > 0) {
        $('.katalog-record-container.katalog-library-record .katalog-record-media span:contains("eBook")').next().hide();  // Change this line only.
        }
        clearInterval(checkExist);
    }, 10);
});

我想你想要隐藏“电子书”之后的“可用于贷款”项目,然后这样做会解释你的问题。 检查一下:https://jsfiddle.net/3cbc8jyb/

答案 1 :(得分:0)

您应该遍历包含跨度的div。这是工作代码:

$(function() {
  $.each($('.katalog-record-media'), function() {
    if ($(this).children('.katalog-value').text()==='eBook') {
      $(this).children('.katalog-record-right').hide();
    }
  })
});

这里有一个演示:https://jsfiddle.net/j7jw31or/1/

答案 2 :(得分:0)

此代码工作正常,但删除了所有顶级div的措辞,我想修改它,所以逐个单独看DIV,然后删除仅在DIV中找到该单词的工作 - 抱歉只是试图制作这个清楚,我不认为我在帮助:)过度描述!!

$(function() {
      var checkExist = setInterval(function() {
          if ($('.katalog-record-media span:contains("eBook")').length > 0) {
            $('.katalog-record-right').hide();
          }
          clearInterval(checkExist);
        }, 10);
      });

顺便说一下checkExist非常重要,因为文本可能从一开始就不存在。