使用Jquery选择无标记文本

我有以下HTML;

Some Text

我希望能够只隐藏文本。 到目前为止,我有这个;

  jQuery(function($) { $(".postcontent").$('[type=text]').hide(); }); 

编辑:我对html没有任何控制权,所以我需要通过Jquery添加它。

您可以将文本包装在FLY上,然后将其隐藏:

HTML:

 

dsds aaa

使用Javascript:

 $('.postcontent').contents().filter(function() { return this.nodeType == 3; }) .wrap(' ').parent().hide(); 

的jsfiddle


根据评论更新:
为什么会创建两个标签? 这很简单,因为它有两个文本节点……

 

(!!FirstTextNode!!) dsds (!!SecondTextNode!!) aaa

据我所知,您无法直接将CSS应用于文本节点。

您可能需要将要隐藏的文本包装在divspan等新元素中。 尝试类似的东西

 

Some text

然后

 $(".postcontent .posttext").hide(); 

您必须将文本包装在另一个元素中,例如spanlabel并隐藏:

HTML

 

JQuery的

 $(".postcontent > label").hide(); 

如果由于某种原因您无法编辑源html,则必须使用.contents来获取文本节点:

 $(".postcontent").contents().each(function(){ if(this.nodeType == 3){ $(this).wrap("
").parent().hide(); } });

http://jsfiddle.net/Wg6Pw/

这将清除示例中的文本。 然后,您可以存储文本并在需要时将其重新添加。 这是一个分解它是如何工作的jsfiddle: http : //jsfiddle.net/brentmn/SXgZc/

 var pc = $('.postcontent'); pc.html(pc.html().replace(pc.text().trim(), '')); 

将要隐藏的文本放在元素中,然后通过调用id隐藏。