如果在带有类的有序列表下隐藏div

时间:2015-12-24 00:38:17

标签: javascript jquery html css wordpress

如果评论是儿童,我正在尝试隐藏显示评论信息的div。

在下面的代码中,如果" ol" 的课程为"孩子" ,那么内部ID为"信息" 的div将被隐藏。

如果评论是孩子,也可以使用其他方式隐藏div。

<ol class="children">
  <li class="comment byuser comment-author-1 bypostauthor odd alt depth-2" id="comment-325" itemprop="review" itemscope itemtype="http://schema.org/Review">
    <article id="comment-325" class="comment row">
      <header class="comment-author vcard col-md-2 col-sm-3 col-xs-12">
        <section class="comment-content comment col-md-10 col-sm-9 col-xs-12">
          <div class="comment-meta"></div>
          <div itemprop="reviewBody">
            <div class='edit-comment-admin-links-no-icon ' id='edit-comment-user-link-325' style='background:none'>
              <div style='display:none'>
                <p>asdsadasdsadasasdasdas
                  <div id="info" class="cio-display cio-display-0">
                    <div class="cio-display-start-new-row"></div>
                    <div class="cio-label cio-label-service-provided">Service Inquired About:</div>
                    <div class="cio-field cio-field-service-provided">Buy/Sell Commercial</div>
                    <div class="cio-display-start-new-row"></div>
                    <div class="cio-label cio-label-deal-completed">Deal Completed?</div>
                    <div class="cio-field cio-field-deal-completed">Yes</div>
                    <div class="cio-display-start-new-row"></div>
                    <div class="cio-label cio-label-date-of-service">Date Of Service:</div>
                    <div class="cio-field cio-field-date-of-service">2015</div>
                  </div>
              </div>
            </div>
          </div>
        </section>
      </header>
    </article>
  </li>
</ol>

3 个答案:

答案 0 :(得分:3)

考虑到您发布的代码,这是您需要的CSS代码:

ol.children #info {
    display: none;
}

但是,假设您有多个这样的评论,我必须添加以下注释:

  

将相同的id传递给您网页中的多个元素并不是一个好主意。 Id应该是HTML元素的唯一标识符。您应该使用class来达到目的。

现在,假设您的to-be-hidden元素将始终包含在itemprop="reviewBody"的元素中,您应该使用这些元素将它们隐藏在具有类children的有序注释列表中:

ol.children [itemprop="reviewBody"] {
    display: none;
}

这里&#34;清理&#34;您的代码版本:

&#13;
&#13;
<ol class="children">
  <li class="comment byuser comment-author-1 bypostauthor odd alt depth-2" id="comment-325" itemprop="review" itemscope itemtype="http://schema.org/Review">
    <article id="comment-325" class="comment row">
      <header class="comment-author vcard col-md-2 col-sm-3 col-xs-12">
        <section class="comment-content comment col-md-10 col-sm-9 col-xs-12">
          <div class="comment-meta"></div>
          <div itemprop="reviewBody">
            <div class='edit-comment-admin-links-no-icon ' id='edit-comment-user-link-325' style='background:none'>
              <div class="cio-display cio-display-0">
                <div class="cio-display-start-new-row"></div>
                <div class="cio-label cio-label-service-provided">Service Inquired About:</div>
                <div class="cio-field cio-field-service-provided">Buy/Sell Commercial</div>
                <div class="cio-display-start-new-row"></div>
                <div class="cio-label cio-label-deal-completed">Deal Completed?</div>
                <div class="cio-field cio-field-deal-completed">Yes</div>
                <div class="cio-display-start-new-row"></div>
                <div class="cio-label cio-label-date-of-service">Date Of Service:</div>
                <div class="cio-field cio-field-date-of-service">2015</div>
              </div>
            </div>
          </div>
        </section>
      </header>
    </article>
  </li>
</ol>
&#13;
&#13;
&#13;

请注意,如果列表包含类children,则上面的代码会隐藏列表中所有评论的评论正文部分,包括顶级评论。如果有序列表中只有一个子节点,则可能会通过WordPress向其添加类children

如果您只想在第2级评论(或更高级别)上隐藏评论正文部分,但在第1级评论中保持这些评论,并假设这些1级评论的附加课程为level-1(I&#39 ;猜测,因为你没有向我们展示一级评论),这是你应该使用的CSS:

ol.children>li:not(.level-1) [itemprop="reviewBody"] {
    display: none;
}

答案 1 :(得分:2)

尝试$('ol.children #info').hide();

答案 2 :(得分:2)

从Kyle Emmanuel的回答中解释,尝试使用这个jQuery选择器

$('ol.children div[id="info"]').hide();

如果您要查找以信息为ID 的div,请使用div [id =&#34; info&#34;]选择器。 #info选择器只返回第一个带有info作为ID的DOM元素,无论如何都应该没问题,因为你应该只为你的元素添加唯一的ID。