使用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('
的jsfiddle
根据评论更新:
为什么会创建两个标签? 这很简单,因为它有两个文本节点…… :
(!!FirstTextNode!!) dsds (!!SecondTextNode!!) aaa
据我所知,您无法直接将CSS应用于文本节点。
您可能需要将要隐藏的文本包装在div
或span
等新元素中。 尝试类似的东西
Some text
然后
$(".postcontent .posttext").hide();
您必须将文本包装在另一个元素中,例如span
或label
并隐藏:
HTML
some Text
JQuery的
$(".postcontent > label").hide();
如果由于某种原因您无法编辑源html,则必须使用.contents
来获取文本节点:
$(".postcontent").contents().each(function(){ if(this.nodeType == 3){ $(this).wrap("").parent().hide(); } });
这将清除示例中的文本。 然后,您可以存储文本并在需要时将其重新添加。 这是一个分解它是如何工作的jsfiddle: http : //jsfiddle.net/brentmn/SXgZc/
var pc = $('.postcontent'); pc.html(pc.html().replace(pc.text().trim(), ''));
将要隐藏的文本放在元素中,然后通过调用id隐藏。