如果声明基于下面的元素

时间:2014-11-03 20:49:23

标签: javascript jquery

我有一个动态麻烦的网站;

想知道我是否可以用jQuery或原始JS写一个if语句,根据另一个元素是否在其下面隐藏元素。

所以像这样;如果<h1>标记直接位于我的div id之下,请保持我的div元素存在;所有其他display: none;

2 个答案:

答案 0 :(得分:2)

您可以使用nothasfirst-child选择器:

$('div:not(:has(>h1:first-child))').hide();

演示:http://jsfiddle.net/c9emjotg/

答案 1 :(得分:1)

您可以使用css隐藏所有相应的div,然后使用jquery显示它们是否包含<h1>

$('h1').parent('.sometimesHeader').show();
.sometimesHeader {
  display: none;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="sometimesHeader">I don't have an h1</div>

<div class="sometimesHeader"><h1>H1 is here!</h1></div>