在隐藏元素中显示元素
Show element in hiddens elements
HTML
<body>
<span>test</span>
<span>test</span>
<span>test</span>
<span id="show">aaaaaa</span>
</body>
JS
$('body').hide();
$('#show').show();
为什么不起作用?我怎样才能让它工作?
现在所有内容都是隐藏的,但如果我使用$('#show').show();
,它应该会使#show
可见。这可能吗?如果是,如何?
我想在没有#show的情况下隐藏所有元素,但我不能修改HTML。
因为#show
位于不可见的body
内部body
定义文档的主体,它包含您的所有元素,所以如果您隐藏它,您将隐藏所有元素
试着只隐藏你想要的元素。
通过在document.body
上设置display: none
(.hide()
基本上就是这样做的),对#show
的第二次调用变得非常不相关,因为父级仍然是隐藏的(body
)。
您需要选择没有特定节点的所有元素并隐藏这些元素。
$(document.body).contents().not('#show, #show *').hide();
要隐藏所有没有id="show"
的元素,可以使用not
函数:
$('body').find('*').not('#show').hide();
或:not
伪选择器:
$('body').find(':not("#show")').hide();
编辑:要显示#show的所有子项,请将其添加到非选择器:
$('body').find('*').not('#show, #show > *').hide();
http://jsfiddle.net/ZD7gm/3/
试试这个:
$('body').contents().hide();
$('#show').show();
jsFiddle示例
这将隐藏主体的所有子项,并显示ID为show
的元素。
隐藏其他元素,而不是整个主体。
$('span').hide();
$('#show').show();
试着在body标记后面追加span,如下所示。
<body>
<span>test</span>
<span>test</span>
<span>test</span>
<span id="show">aaaaaa</span>
</body>
$('body span').hide();
$('#show').show();
jsfiddle.net示例
$('body').find('*').not('#show, #show > *').hide();
相关文章:
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 使用漂亮的照片点击另一个元素显示图像
- 我将如何在 HTML 中将数组中的所有元素显示为可点击的对象
- 使元素显示在最小屏幕大小上
- 更好的做法是通过CSS类或直接(通过DOM)修改HTML元素显示
- 如何在YouTube视频前制作元素显示
- 使隐藏元素显示 X 秒
- 如果元素显示:无;在媒体查询中,它们是否仍然加载
- 无法为每个元素显示高图
- 如何使用 jQuery 逐个元素显示
- 使用 jQuery 画布元素显示 Hiddin Div
- '李'mouseover事件被child'a'元素显示块
- JQuery元素显示/隐藏和控制流
- D3在工具提示上将内部列表的元素显示为不同的行
- AngularJS-动态创建<text区域>使用ngSanitize不会't显示(其他元素显示)
- 如何根据单击的元素的位置使元素显示在右侧或左侧
- 响应元素显示:无;在移动宽度,然后通过javascript按钮返回,但显示的链接断开:block;
- 当我再次单击时,它显示none,高度回到0px,但里面的元素显示,不显示none或离开页面
- 将一个元素显示在另一个元素的顶部,并在其上禁用鼠标悬停事件
- reactjs:为什么在render中定义的一些dom元素显示两次