隐藏(不删除)所有HTML标记 - Jquery

时间:2012-04-11 22:47:15

标签: jquery

如何使用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 .

5 个答案:

答案 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>