1

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

5 回答 5

5

您可以隐藏特定父项的所有子元素。

由于隐藏元素的后代无论如何都不会显示,因此无需遍历所有元素find("*")

$("#theParent").children().hide();

或者,正如 gdoron 建议的那样:

$("#theParent > *").hide();

上面可能会更快,因为它使用纯 CSS 选择器。

于 2012-04-11T22:49:41.047 回答
4

$('*').hide()将删除所有文档的所有标签。$('#parent *').hide()父元素内的所有元素。

于 2012-04-11T22:49:47.253 回答
2

听起来您想隐藏特定包含元素的后代。

$(container).find('*').hide();

jQuery 也有一个简写形式:

$('*', container).hide();
于 2012-04-11T22:49:44.660 回答
1

$('p *').hide()如果整个文本都在一个<p>元素中,您可以执行类似的操作。

如果您只想隐藏它们,但仍然占用空间,请将它们的可见性设置为隐藏

$('p *').css('visibility', 'hidden');

元素仍会占用空间,但不可见。

于 2012-04-11T22:50:23.183 回答
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>
于 2012-04-11T22:50:25.727 回答