[英]Hide siblings and parent's siblings until the given id using JQuery
我試圖擴大內部div由於按鈕點擊空間問題。 當用戶點擊按鈕時,我想隱藏其兄弟姐妹和父母的兄弟姐妹,直到指定的id。 如何使用jquery在javascript中執行此操作?
以下是一個例子:
DOM:
<div id="p">
<div id="p1-1">
<div id="c1-1-1">
<button id="expand"></button>
</div>
<div id="c1-1-2">
</div>
</div>
<div id="p1-2">
<div id="c1-2-1">
</div>
</div>
<div id="p1-3">
<div id="c1-3-1">
</div>
</div>
</div>
結果Dom:
<div id="p">
<div id="p1-1">
<div id="c1-1-1">
<button id="expand"></button>
</div>
</div>
</div>
找到你想要使用,以保持可見的元素parentsUntil() ,通過循環利用它們每() ,然后隱藏他們的兄弟姐妹()。
$(button).click(function(){
var elementsToKeep = $(this).parentsUntil('#stop_element_id');
elementsToKeep.each(function(){
$(this).siblings().hide();
});
});
沒有足夠的代表發布鏈接到兄弟姐妹()。
如果我正確理解了這個問題:
$("#expand").on("click", function () {
// Toggle text
var text = $(this).text() == "Expand" ? "Collapse" : "Expand";
$(this).text(text);
// Toggle proximal element state
$(this).parent().siblings().toggle();
$(this).parent().parent().siblings().toggle();
});
'while-until'循環應該可以解決問題:
var str_stop_id = "p",
$el = $(this).parent();
while ($el.attr('id') !== str_stop_id) {
$el = $el.siblings().hide().end().parent();
}
這很好用:
$(button).click(function(){
var elementsToKeep = $(this).parentsUntil('#stop_element_id');
elementsToKeep.each(function(){
$(this).siblings().hide();
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.