[英]Show/hide elements in a single line?
我正在調用帶有ID的函數。 此ID應該被用來.show()
的元件(一個或多個)匹配的選擇器和.hide()
一切沒有。
function showAndHide(id){
$('.container div').hide();
$('.container div[data-id="'+id+'"]').show();
}
有沒有更聰明的方法呢? 我想避免兩次編寫選擇器的部分( .container div
),並獲得更清晰的表示法。
您可以使用鏈接和過濾 :
$('.container div').hide().filter('[data-id="'+id+'"]').show();
第一個選擇器選擇.container
所有子div,因此對所有這些子.container
hide操作。 過濾器基於第二個選擇器獲取第一組的子集(類似於作用於子元素的.find()
)。 因此,最終的show()
僅作用於過濾后的元素。
我認為這應該可以解決問題。
$('.container div, .container div[data-id="'+id+'"]').toggle();
function showAndHide(id){
$('.container div').not('[data-id="'+id+'"]').hide();
}
這樣的東西也許就是您想要的:
function showAndHide(id){
$('.container div').each(function () {
var t = $(this);
if(t.data("id") == id) {
t.show();
}
else {
t.hide();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.