我有一个<p>
标记,我需要隐藏文字。<span>
内部还有一个<p>
,我不想隐藏此文字。这可以不使用jQuery更改标记吗?
小提琴:http://jsfiddle.net/ghogdc0x/2/
HTML:
<p class="class">
<span>Text not to hide</span>
<br>
Text to hide
</p>
答案 0 :(得分:2)
只需在p标签附近复制span元素,然后隐藏p标签即可。试试这个:
xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
yValues: new[] { "2", "6", "4", "5", "3" })
答案 1 :(得分:2)
您可以使用css visibility属性:
$('.class').css('visibility', 'hidden');
$('.class').children().css('visibility', 'visible');
然后你可以通过这样做再次看到它:
$('.class').css('visibility', 'visible');
答案 2 :(得分:0)
您无法隐藏文字节点。您只能删除它们或用其他元素包装它们并隐藏该包装元素。
以下代码段隐藏了非span元素并删除了text-nodes子节点。
$('p.class').contents().each(function() {
var $this = $(this);
if ( this.nodeType === 3 && $.trim(this.nodeValue) ) {
$this.remove();
// in case that you just want to hide the text node
// $this.wrap('<i>').parent().hide();
} else if ( this.nodeType === 1 && this.tagName !== 'SPAN' ) {
$this.hide();
}
});
答案 3 :(得分:0)
使用此选项并尝试将要隐藏的文本包装在包装p元素中,如
<p><span>Text not to hide</span><br/><p>Text to hide</p></p>
$('p').find('*').not('span').css('display','none');