我正在尋找一種方法,通過使用按鈕onclick事件來隱藏一定數量的div。
我知道這可能與……toggleClass('。但是我不太確定...我可以隱藏/顯示一個div,但不能顯示父div中的特定div。jquery來自我想使用的以前的代碼片段。 所有隱藏的div這個類& quot"需要在單擊顯示列按鈕時顯示或隱藏
$('button').click(function() {
$(this).siblings('div').toggleClass('hidethis ');
});
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
}
body {
background: #fff;
padding: 0;
margin: 0;
font-family: Myriad-Pro, Arial, 'Varela Round', sans-serif;
font-size: 16px;
}
.quotation {
height: 100%;
overflow: auto;
}
.main-div {
position: sticky;
top: 0;
}
.header-div {
display: flex;
padding: 5px 0;
background-color: #fff;
}
.titles {
display: flex;
width: 100%;
align-items: center;
}
.currencyinfo {
width: fit-content;
max-width: 100px;
min-width: 100px;
text-align: center;
padding: 0;
}
.info {
width: fit-content;
max-width: 100px;
min-width: 100px;
text-align: center;
padding: 10px 0;
}
.currency {
max-width: 70px;
min-width: 70px;
}
.table-info {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
overflow-y: scroll;
}
.main-div-info {
display: flex;
text-align: center;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
}
.div-info {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
padding: 10px 0;
align-items: center;
}
.hidethis {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js" integrity="sha512-3gJwYpMe3QewGELv8k/BX9vcqhryRdzRMxVfq6ngyWXwo03GFEzjsUm8Q7RZcHPHksttq7/GFoxjCVUjkjvPdw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<section class="quotation">
<div class="main-div">
<div class="header-div">
<div class="titles">
<div class="currencyinfo product-title">
<button class="show-this-data">show columns</button>
</div>
<div class="currencyinfo"></div>
<div class="currencyinfo"></div>
<div class="currencyinfo"></div>
<div class="currencyinfo hidethis" style="border-left: 1px solid #bdbdbd;">Local</div>
<div class="currencyinfo hidethis"></div>
<div class="currencyinfo hidethis"></div>
<div class="currencyinfo hidethis"></div>
</div>
</div>
</div>
<div class="main-div">
<div class="header-div">
<div class="titles">
<div class="info product-title">Product name</div>
<div class="info">ID</div>
<div class="info">Quantity</div>
<div class="info">Periods</div>
<div class="info hidethis"> </div>
<div class="info hidethis">Unit Price</div>
<div class="info hidethis">Unit Cost</div>
<div class="info hidethis">Unit Discount</div>
</div>
</div>
</div>
<div class="main-div">
<div class="header-div">
<div class="titles">
<div class="info product-title"><i class="fa fa-chevron-down rotate" aria-hidden="true"></i><a href="#">Full Throttle</a></div>
<div class="info"> </div>
<div class="info">1.0</div>
<div class="info">1.0</div>
<div class="info hidethis">USD</div>
<div class="info hidethis">37.50</div>
<div class="info hidethis">0.0</div>
<div class="info hidethis">0.0</div>
</div>
</div>
</div>
</section>
您需要向上一級,找到作為同級的目標元素??s進塊級元素的內容有助于更好地可視化。
如果您想在所有容器中切換所有這樣的元素,您需要引入一個新的類來在類被移除時跟蹤它們,或者一次性選擇它們并使用元素列表。
$(function() {
const elsToToggle = $('.hidethis');
$('.show-this-data').click(function() {
$(this).parent().siblings('div').toggleClass('hidethis ');
});
$('.show-all-data').click(function() {
elsToToggle.toggleClass('hidethis');
});
});
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
}
body {
background: #fff;
padding: 0;
margin: 0;
font-family: Myriad-Pro, Arial, 'Varela Round', sans-serif;
font-size: 16px;
}
.quotation {
height: 100%;
overflow: auto;
}
.main-div {
position: sticky;
top: 0;
}
.header-div {
display: flex;
padding: 5px 0;
background-color: #fff;
}
.titles {
display: flex;
width: 100%;
align-items: center;
}
.currencyinfo {
width: fit-content;
max-width: 100px;
min-width: 100px;
text-align: center;
padding: 0;
}
.info {
width: fit-content;
max-width: 100px;
min-width: 100px;
text-align: center;
padding: 10px 0;
}
.currency {
max-width: 70px;
min-width: 70px;
}
.table-info {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
overflow-y: scroll;
}
.main-div-info {
display: flex;
text-align: center;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
}
.div-info {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
padding: 10px 0;
align-items: center;
}
.hidethis {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js" integrity="sha512-3gJwYpMe3QewGELv8k/BX9vcqhryRdzRMxVfq6ngyWXwo03GFEzjsUm8Q7RZcHPHksttq7/GFoxjCVUjkjvPdw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<section class="quotation">
<div class="main-div">
<div class="header-div">
<div class="titles">
<div class="currencyinfo product-title">
<button class="show-this-data">show columns in this block</button>
<button class="show-all-data">show columns in all blocks</button>
</div>
<div class="currencyinfo"></div>
<div class="currencyinfo"></div>
<div class="currencyinfo"></div>
<div class="currencyinfo hidethis" style="border-left: 1px solid #bdbdbd;">Local</div>
<div class="currencyinfo hidethis"></div>
<div class="currencyinfo hidethis"></div>
<div class="currencyinfo hidethis"></div>
</div>
</div>
</div>
<div class="main-div">
<div class="header-div">
<div class="titles">
<div class="info product-title">Product name</div>
<div class="info">ID</div>
<div class="info">Quantity</div>
<div class="info">Periods</div>
<div class="info hidethis"> </div>
<div class="info hidethis">Unit Price</div>
<div class="info hidethis">Unit Cost</div>
<div class="info hidethis">Unit Discount</div>
</div>
</div>
</div>
<div class="main-div">
<div class="header-div">
<div class="titles">
<div class="info product-title"><i class="fa fa-chevron-down rotate" aria-hidden="true"></i><a href="#">Full Throttle</a></div>
<div class="info"> </div>
<div class="info">1.0</div>
<div class="info">1.0</div>
<div class="info hidethis">USD</div>
<div class="info hidethis">37.50</div>
<div class="info hidethis">0.0</div>
<div class="info hidethis">0.0</div>
</div>
</div>
</div>
</section>