javascript - 改变 HTML 元素的可见性

标签 javascript jquery html css

我想改变除某些特定元素之外的 HTML 元素的可见性。我希望元素处于相同的位置和对齐方式,并且只是要更改元素的可见性。有人可以帮我做吗?

我通过查看 How to hide all elements except one using jquery? 的答案尝试使用 jquery 做同样的事情但这会改变元素的位置和对齐方式。

$('body > :not(#averageCustomerReviews)').hide(); //this hid everything
$('#averageCustomerReviews').appendTo('body'); //but this changed the position

我目前有 xpaths/CSS 选择器等我不想隐藏的元素的定位器。

例如我有这个 link .我只想查看 enter image description here通过隐藏所有其他元素在它现在所在的位置。

最佳答案

可见性使用

jQuery

$("#element").css("visibility", "hidden");

CSS

#element {
visibility: hidden;
}

如果您希望除 #element 之外的所有其他元素都“不可见”:

jQuery

$(":not(#element)").css("visibility", "hidden");

CSS

:not(#element) { 
visibility: hidden; 
}

回答您的“之后”问题 - 让除一个之外的所有内容都隐形

如果您不能将“不可见”类分配给应该不可见的元素(最佳解决方案),您可以通过这种方式只呈现一个可见的子元素,请参阅 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");

不太好,但它有效。 Screenshot

像这样的复杂的 html 树,没有任何可能分配一些自定义类。我认为这是唯一的解决方案...

关于javascript - 改变 HTML 元素的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20505911/

相关文章:

jquery - 如何将 jQuery 可调整大小与图像绑定(bind)?

python - 使用 Python mechanize 填写不在表单中的 HTML-InputFields

javascript - 将数据插入 Web SQL 数据库的这段 Javascript 代码有什么问题?

javascript - D3 Graph 在 Chromium 中工作,但在其他浏览器中不工作

JavaScript/jQuery : Animated Cursor/Light Effect

javascript - 使用 jquery 自定义自动完成

Javascript 捕获 ctrl+alt+c

javascript - HTML 选择下拉国家和州使用 (countries.js)

html - 强制缩小 HTML 页面

javascript - Chartist.js 条形图填充轴