2017-01-06 68 views
0

我正在圈圈,但無法找到確切的邏輯。我有以下代碼:在CSS或jQuery中選擇直接兄弟?

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

表標記依賴性通過設置進行控制,它並不總是存在。我想要做的就是如果「table」標籤存在,就用類1隱藏「div」。任何想法如何我可以通過CSS或JQuery做到這一點?

回答

1

您可以使用+表示緊接其後:

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

+0

沒有必要重複您的代碼塊。 Stack Snippets總是在您的帖子內顯示代碼。 – BoltClock

+0

謝謝。這工作! – rkd

0

$('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. 假設只有一個表存在使用.length,以檢查是否存在。
  2. 您可以使用ID或類來查看更具體的表格。
  3. 不要開始命名類使用數

對於特定表:

$('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>

0

Working Fiddle

使用.siblings()方法。

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