如何使用jquery隐藏所有HTML标记。不删除但隐藏。我是否必须单独指定每个标签,还是有更强大/可扩展的解决方案?
示例字符串:
My name is <b>Joe</b> and I like <span style="color:red;">long walks</span> on the <i>beach</i>.
结果
My name is and I like on the .
答案 0 :(得分:5)
您可以隐藏特定父级的所有子元素。
由于隐藏元素的后代无论如何都不会显示,因此无需使用find("*")
迭代所有隐藏元素的后代:
$("#theParent").children().hide();
或者,正如gdoron建议的那样:
$("#theParent > *").hide();
以上可能会更快,因为它使用纯CSS选择器。
答案 1 :(得分:4)
$('*').hide()
将删除所有文档的所有标记。 $('#parent *').hide()
父元素中的所有元素。
答案 2 :(得分:2)
听起来你想要隐藏特定包含元素的后代。
$(container).find('*').hide();
jQuery也有一个简写形式:
$('*', container).hide();
答案 3 :(得分:1)
如果整个文本位于$('p *').hide()
元素中,您可以执行<p>
之类的操作。
如果您只想隐藏它们,但仍占用空间,请将其可见性设置为隐藏
$('p *').css('visibility', 'hidden');
元素仍将占用空间,但不会显示。
答案 4 :(得分:0)
只要你有一个父容器就很容易:)
<div id='myDiv'>
My name is <b>Joe</b> and I like <span style="color:red;">long walks</span> on the <i>beach</i>.
</div>
<script>
$('#myDiv:child').hide();
</script>