Select CSS 或 jquery 中的直系兄弟?

Select immediate sibling in CSS or jquery?

我在兜圈子,但找不到准确的逻辑。我有以下代码:

<form>
 <table></table>
 <div class="1"> </div>
 <div class="2"> </div>
 <div class="3"> </div>
</form>

table 标签依赖是通过设置控制的,并不总是存在。如果 "table" 标签存在,我想要做的是用 class 1 隐藏 "div"。关于如何通过 CSS 或 Jquery 执行此操作的任何想法?

$('table').length > 0 ? $('.class1').hide() : $('.class1').show();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
 <table></table>
 <div class="class1"> 1</div>
 <div class="class2"> 2</div>
 <div class="class3"> 3</div>
</form>

  1. 假设只有一个 table 存在,使用 .length 检查是否存在。
  2. 您可以使用 ID 或 class 更具体的 table 来检查。
  3. 不要开始使用数字
  4. 命名class

具体table:

$('table#check').length > 0 ? $('.class1').hide() : $('.class1').show();//checks for table with id check if present then do hide or show 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <table id='check'></table>
  <div class="class1">1</div>
  <div class="class2">2</div>
  <div class="class3">3</div>
  <table id='check1'></table>
</form>

可以用+表示直系兄弟:

table + div.one {
  display: none;
}
<form>
  <table></table>
  <div class="one">a</div>
  <div class="two">b</div>
  <div class="three">c</div>
</form>

Working Fiddle

使用.siblings()方法。

if ($('table').length > 0) {
  $("table").siblings().first().hide();
}