我想更改除某些特定元素之外的HTML元素的可见性。我希望元素处于相同的位置和对齐,以及要更改的元素的可见性。有人可以帮我这样做吗?
我尝试使用jquery通过查看How to hide all elements except one using jquery?的答案来做同样的事情,但这会改变元素的位置和对齐方式。
$('body > :not(#averageCustomerReviews)').hide(); //this hid everything
$('#averageCustomerReviews').appendTo('body'); //but this changed the position
我目前有像xpaths / CSS Selectors这样的元素的定位器,我不想隐藏。
例如我有这个link。我想通过隐藏所有其他元素来仅查看它现在所在的。
答案 0 :(得分:5)
可见性使用
的jQuery
$("#element").css("visibility", "hidden");
CSS
#element {
visibility: hidden;
}
如果您希望除#element
之外的所有其他元素都是"隐身":
的jQuery
$(":not(#element)").css("visibility", "hidden");
CSS
:not(#element) {
visibility: hidden;
}
回答你的'之后'问题 - 除了一个
之外全部不可见如果你不能分配一个“看不见的”'对于应该是invisibile的元素(最佳解决方案),只能以这种方式呈现一个子元素,请参阅JsFiddle。
这意味着:
$("*").css("visibility", "hidden");
$("#element").css("visibility", "visible");
在您的情况下,您想要展示的元素是一个小小的嵌套'你可以这样做:
// set all 'invisible'
$("*").css("visibility", "hidden");
// set visible the element with their 'sub-child'
$("#averageCustomerReviews_feature_div, #averageCustomerReviews, #averageCustomerReviews a, .reviewCountTextLinkedHistogram, .reviewCountTextLinkedHistogram a, .a-popover-trigger, .a-popover-trigger i").css("visibility", "visible");
不好,但确实有效。
使用像这样的html树复杂,没有任何可能分配一些自定义类。我认为这是唯一的解决方案......
答案 1 :(得分:1)
使用visibility: hidden;
。与display: none;
不同,元素仍然存在。
除了使用这样的样式之外,所有元素都适用:
* {
visibility: hidden;
}
#element {
visibility:visible !important;
}
答案 2 :(得分:1)
如果您希望隐藏#element
以外的所有内容,请使用以下内容:
:not(#element) {
visibility: hidden;
}
有关:not()
选择器的更多信息,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/CSS/:not
<强>更新强>
您还可以将:not()
个选择器链接在一起以排除多个元素。例如,如果您不允许隐藏#element1
和#element2
,请执行以下操作:
:not(#element1):not(#element2) {
visibility: hidden;
}
答案 3 :(得分:0)
您可以在CSS中进行设置,其中class
是您要隐藏的所有元素上的类:
.class {
visibility: hidden;
}
然后
$('#element').css('visibility', 'visible');
答案 4 :(得分:0)
使用这个
jquery的
$("#elementid").onclick(function() {
$('body').css({ 'visibility': 'hidden'});
$('#elementid').css({ 'visibility': 'visible'});
});